diff --git a/README.md b/README.md
index d62dd0a0..20138b69 100644
--- a/README.md
+++ b/README.md
@@ -152,6 +152,7 @@ continew-starter
├─ continew-starter-json(JSON 模块)
│ └─ continew-starter-json-jackson
├─ continew-starter-api-doc(接口文档模块:Spring Doc + Knife4j)
+├─ continew-starter-validation(校验模块:Hibernate Validator)
├─ continew-starter-web(Web 开发模块:包含跨域、全局异常+响应、链路追踪等自动配置)
├─ continew-starter-cache(缓存模块)
│ ├─ continew-starter-cache-redisson(Redisson)
@@ -161,7 +162,7 @@ continew-starter
│ ├─ continew-starter-auth-satoken(国产轻量认证鉴权)
│ └─ continew-starter-auth-justauth(第三方登录)
├─ continew-starter-data(数据访问模块)
-│ ├─ continew-starter-data-core(通用模块)
+│ ├─ continew-starter-data-core(核心模块)
│ ├─ continew-starter-data-mp(MyBatis Plus)
│ └─ continew-starter-data-mf(MyBatis Flex)
├─ continew-starter-security(安全模块)
@@ -179,11 +180,13 @@ continew-starter
│ ├─ continew-starter-messaging-mail(邮件)
│ └─ continew-starter-messaging-websocket(WebSocket)
├─ continew-starter-log(日志模块)
-│ ├─ continew-starter-log-core(通用模块)
+│ ├─ continew-starter-log-core(核心模块)
│ ├─ continew-starter-log-aop(基于 AOP 实现)
│ └─ continew-starter-log-interceptor(基于拦截器实现(Spring Boot Actuator HttpTrace 增强版))
-├─ continew-starter-file(文件处理模块)
-│ └─ continew-starter-file-excel(Easy Excel)
+├─ continew-starter-excel(Excel 文件处理模块)
+│ ├─ continew-starter-excel-core(核心模块)
+│ ├─ continew-starter-excel-fastexcel(FastExcel)
+│ └─ continew-starter-excel-poi(POI)
├─ continew-starter-storage(存储模块)
│ └─ continew-starter-storage-local(本地存储)
├─ continew-starter-license(License 模块)
@@ -192,13 +195,13 @@ continew-starter
│ └─ continew-starter-license-verifier(License 校验器)
└─ continew-starter-extension(扩展模块)
├─ continew-starter-extension-datapermission(数据权限模块)
- │ ├─ continew-starter-extension-datapermission-core(通用模块)
+ │ ├─ continew-starter-extension-datapermission-core(核心模块)
│ └─ continew-starter-extension-datapermission-mp(MyBatis Plus)
├─ continew-starter-extension-tenant(多租户模块)
- │ ├─ continew-starter-extension-tenant-core(通用模块)
+ │ ├─ continew-starter-extension-tenant-core(核心模块)
│ └─ continew-starter-extension-tenant-mp(MyBatis Plus)
└─ continew-starter-extension-crud(CRUD 模块)
- ├─ continew-starter-extension-crud-core(通用模块)
+ ├─ continew-starter-extension-crud-core(核心模块)
├─ continew-starter-extension-crud-mp(MyBatis Plus)
└─ continew-starter-extension-crud-mf(MyBatis Flex)
```
diff --git a/continew-starter-bom/pom.xml b/continew-starter-bom/pom.xml
index ff197d8e..1a9cd926 100644
--- a/continew-starter-bom/pom.xml
+++ b/continew-starter-bom/pom.xml
@@ -39,6 +39,13 @@
${revision}
+
+
+ top.continew
+ continew-starter-validation
+ ${revision}
+
+
top.continew
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/CheckUtils.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/CheckUtils.java
similarity index 99%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/CheckUtils.java
rename to continew-starter-core/src/main/java/top/continew/starter/core/util/CheckUtils.java
index 5225cbf2..d52265cf 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/CheckUtils.java
+++ b/continew-starter-core/src/main/java/top/continew/starter/core/util/CheckUtils.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation;
+package top.continew.starter.core.util;
import cn.hutool.core.text.CharSequenceUtil;
import top.continew.starter.core.constant.StringConstants;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/ValidationUtils.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/ValidationUtils.java
similarity index 99%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/ValidationUtils.java
rename to continew-starter-core/src/main/java/top/continew/starter/core/util/ValidationUtils.java
index 22c1f0d8..67a950fb 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/ValidationUtils.java
+++ b/continew-starter-core/src/main/java/top/continew/starter/core/util/ValidationUtils.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation;
+package top.continew.starter.core.util;
import cn.hutool.core.text.CharSequenceUtil;
import top.continew.starter.core.exception.BadRequestException;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/Validator.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/Validator.java
similarity index 99%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/Validator.java
rename to continew-starter-core/src/main/java/top/continew/starter/core/util/Validator.java
index 27a5f50e..e4cebcf7 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/Validator.java
+++ b/continew-starter-core/src/main/java/top/continew/starter/core/util/Validator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation;
+package top.continew.starter.core.util;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
diff --git a/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index f2d8c252..73f7d823 100644
--- a/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,4 +1,3 @@
top.continew.starter.core.autoconfigure.project.ProjectAutoConfiguration
-top.continew.starter.core.autoconfigure.ValidatorAutoConfiguration
top.continew.starter.core.autoconfigure.threadpool.ThreadPoolAutoConfiguration
top.continew.starter.core.autoconfigure.threadpool.AsyncAutoConfiguration
\ No newline at end of file
diff --git a/continew-starter-data/continew-starter-data-mf/src/main/java/top/continew/starter/data/mf/util/QueryWrapperHelper.java b/continew-starter-data/continew-starter-data-mf/src/main/java/top/continew/starter/data/mf/util/QueryWrapperHelper.java
index 19469720..d9b69e8b 100644
--- a/continew-starter-data/continew-starter-data-mf/src/main/java/top/continew/starter/data/mf/util/QueryWrapperHelper.java
+++ b/continew-starter-data/continew-starter-data-mf/src/main/java/top/continew/starter/data/mf/util/QueryWrapperHelper.java
@@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Sort;
import top.continew.starter.core.exception.BadRequestException;
import top.continew.starter.core.util.ReflectUtils;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.ValidationUtils;
import top.continew.starter.data.core.annotation.Query;
import top.continew.starter.data.core.annotation.QueryIgnore;
import top.continew.starter.data.core.enums.QueryType;
diff --git a/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/service/impl/ServiceImpl.java b/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/service/impl/ServiceImpl.java
index a59f4eb8..0848780d 100644
--- a/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/service/impl/ServiceImpl.java
+++ b/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/service/impl/ServiceImpl.java
@@ -20,8 +20,8 @@ import cn.hutool.core.util.ClassUtil;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.repository.CrudRepository;
import top.continew.starter.core.util.ReflectUtils;
-import top.continew.starter.core.validation.CheckUtils;
import top.continew.starter.data.mp.service.IService;
+import top.continew.starter.core.util.CheckUtils;
import java.io.Serializable;
import java.lang.reflect.Field;
diff --git a/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/util/QueryWrapperHelper.java b/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/util/QueryWrapperHelper.java
index a9d63063..dc8446a3 100644
--- a/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/util/QueryWrapperHelper.java
+++ b/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/mp/util/QueryWrapperHelper.java
@@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Sort;
import top.continew.starter.core.exception.BadRequestException;
import top.continew.starter.core.util.ReflectUtils;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.ValidationUtils;
import top.continew.starter.data.core.annotation.Query;
import top.continew.starter.data.core.annotation.QueryIgnore;
import top.continew.starter.data.core.enums.QueryType;
diff --git a/continew-starter-dependencies/pom.xml b/continew-starter-dependencies/pom.xml
index c3d931cb..f6652def 100644
--- a/continew-starter-dependencies/pom.xml
+++ b/continew-starter-dependencies/pom.xml
@@ -39,6 +39,7 @@
0.38.5
0.4.20
5.0.5-boot3
+ 0.5.0-beta
2.9.0
4.5.0
1.5.2
@@ -266,6 +267,13 @@
${graceful-response.version}
+
+
+ cn.sticki
+ spel-validator-javax
+ ${spel-validator.version}
+
+
cn.crane4j
diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudTreeProperties.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudTreeProperties.java
index 1eaabb2c..bd498e54 100644
--- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudTreeProperties.java
+++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/autoconfigure/CrudTreeProperties.java
@@ -17,7 +17,7 @@
package top.continew.starter.extension.crud.autoconfigure;
import cn.hutool.core.lang.tree.TreeNodeConfig;
-import top.continew.starter.core.validation.CheckUtils;
+import top.continew.starter.core.util.CheckUtils;
import top.continew.starter.extension.crud.annotation.TreeField;
/**
diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/model/query/SortQuery.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/model/query/SortQuery.java
index 2c973ada..c5a50bca 100644
--- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/model/query/SortQuery.java
+++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/model/query/SortQuery.java
@@ -21,7 +21,7 @@ import cn.hutool.core.util.ArrayUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.data.domain.Sort;
import top.continew.starter.core.constant.StringConstants;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.ValidationUtils;
import top.continew.starter.data.core.util.SqlInjectionUtils;
import java.io.Serial;
diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java
index e3d0f70e..f87c9894 100644
--- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java
+++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java
@@ -33,7 +33,7 @@ import org.springframework.data.domain.Sort;
import org.springframework.transaction.annotation.Transactional;
import top.continew.starter.core.constant.StringConstants;
import top.continew.starter.core.util.ReflectUtils;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.ValidationUtils;
import top.continew.starter.data.mf.base.BaseMapper;
import top.continew.starter.data.mf.service.impl.ServiceImpl;
import top.continew.starter.data.mf.util.QueryWrapperHelper;
diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java
index a637cb37..67c17b15 100644
--- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java
+++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java
@@ -37,8 +37,6 @@ import org.springframework.transaction.annotation.Transactional;
import top.continew.starter.core.constant.StringConstants;
import top.continew.starter.core.util.ClassUtils;
import top.continew.starter.core.util.ReflectUtils;
-import top.continew.starter.core.validation.CheckUtils;
-import top.continew.starter.core.validation.ValidationUtils;
import top.continew.starter.data.mp.mapper.BaseMapper;
import top.continew.starter.data.mp.service.impl.ServiceImpl;
import top.continew.starter.data.mp.util.QueryWrapperHelper;
@@ -52,6 +50,8 @@ import top.continew.starter.extension.crud.model.query.SortQuery;
import top.continew.starter.extension.crud.model.resp.LabelValueResp;
import top.continew.starter.extension.crud.model.resp.PageResp;
import top.continew.starter.excel.util.ExcelUtils;
+import top.continew.starter.core.util.CheckUtils;
+import top.continew.starter.core.util.ValidationUtils;
import java.lang.reflect.Field;
import java.util.*;
diff --git a/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfig.java b/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfig.java
index d1d0bc79..ece764ae 100644
--- a/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfig.java
+++ b/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfig.java
@@ -17,7 +17,7 @@
package top.continew.starter.messaging.mail.core;
import cn.hutool.core.map.MapUtil;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.ValidationUtils;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
diff --git a/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfigurer.java b/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfigurer.java
index 678c400d..983d5f53 100644
--- a/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfigurer.java
+++ b/continew-starter-messaging/continew-starter-messaging-mail/src/main/java/top/continew/starter/messaging/mail/core/MailConfigurer.java
@@ -17,7 +17,7 @@
package top.continew.starter.messaging.mail.core;
import org.springframework.mail.javamail.JavaMailSenderImpl;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.ValidationUtils;
/**
* 邮件配置
diff --git a/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java b/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java
index d2e239fc..2b139904 100644
--- a/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java
+++ b/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java
@@ -33,7 +33,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
import top.continew.starter.core.constant.PropertiesConstants;
-import top.continew.starter.core.validation.CheckUtils;
+import top.continew.starter.core.util.CheckUtils;
import java.util.HashMap;
import java.util.List;
diff --git a/continew-starter-security/continew-starter-security-sensitivewords/pom.xml b/continew-starter-security/continew-starter-security-sensitivewords/pom.xml
index 9f7c4515..c405e96d 100644
--- a/continew-starter-security/continew-starter-security-sensitivewords/pom.xml
+++ b/continew-starter-security/continew-starter-security-sensitivewords/pom.xml
@@ -22,6 +22,7 @@
hutool-dfa
+
org.springframework.boot
spring-boot-starter-validation
diff --git a/continew-starter-storage/continew-starter-storage-core/src/main/java/top/continew/starter/storage/manger/StorageManager.java b/continew-starter-storage/continew-starter-storage-core/src/main/java/top/continew/starter/storage/manger/StorageManager.java
index bfed67c9..629de73f 100644
--- a/continew-starter-storage/continew-starter-storage-core/src/main/java/top/continew/starter/storage/manger/StorageManager.java
+++ b/continew-starter-storage/continew-starter-storage-core/src/main/java/top/continew/starter/storage/manger/StorageManager.java
@@ -17,7 +17,7 @@
package top.continew.starter.storage.manger;
import top.continew.starter.cache.redisson.util.RedisUtils;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.ValidationUtils;
import top.continew.starter.storage.constant.StorageConstant;
import top.continew.starter.storage.strategy.StorageStrategy;
diff --git a/continew-starter-storage/continew-starter-storage-local/src/main/java/top/continew/starter/storage/strategy/LocalStorageStrategy.java b/continew-starter-storage/continew-starter-storage-local/src/main/java/top/continew/starter/storage/strategy/LocalStorageStrategy.java
index 542c6922..9114ab00 100644
--- a/continew-starter-storage/continew-starter-storage-local/src/main/java/top/continew/starter/storage/strategy/LocalStorageStrategy.java
+++ b/continew-starter-storage/continew-starter-storage-local/src/main/java/top/continew/starter/storage/strategy/LocalStorageStrategy.java
@@ -24,8 +24,8 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import top.continew.starter.core.constant.StringConstants;
import top.continew.starter.core.exception.BusinessException;
-import top.continew.starter.core.validation.CheckUtils;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.CheckUtils;
+import top.continew.starter.core.util.ValidationUtils;
import top.continew.starter.storage.client.LocalClient;
import top.continew.starter.storage.constant.StorageConstant;
import top.continew.starter.storage.dao.StorageDao;
diff --git a/continew-starter-storage/continew-starter-storage-oss/src/main/java/top/continew/starter/storage/strategy/OssStorageStrategy.java b/continew-starter-storage/continew-starter-storage-oss/src/main/java/top/continew/starter/storage/strategy/OssStorageStrategy.java
index 3ce98d5f..953df72c 100644
--- a/continew-starter-storage/continew-starter-storage-oss/src/main/java/top/continew/starter/storage/strategy/OssStorageStrategy.java
+++ b/continew-starter-storage/continew-starter-storage-oss/src/main/java/top/continew/starter/storage/strategy/OssStorageStrategy.java
@@ -36,8 +36,8 @@ import software.amazon.awssdk.transfer.s3.model.Upload;
import software.amazon.awssdk.transfer.s3.progress.LoggingTransferListener;
import top.continew.starter.core.constant.StringConstants;
import top.continew.starter.core.exception.BusinessException;
-import top.continew.starter.core.validation.CheckUtils;
-import top.continew.starter.core.validation.ValidationUtils;
+import top.continew.starter.core.util.CheckUtils;
+import top.continew.starter.core.util.ValidationUtils;
import top.continew.starter.storage.client.OssClient;
import top.continew.starter.storage.constant.StorageConstant;
import top.continew.starter.storage.dao.StorageDao;
diff --git a/continew-starter-validation/pom.xml b/continew-starter-validation/pom.xml
new file mode 100644
index 00000000..889e193c
--- /dev/null
+++ b/continew-starter-validation/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+ top.continew
+ continew-starter
+ ${revision}
+
+
+ continew-starter-validation
+ jar
+
+ ${project.artifactId}
+ ContiNew Starter 验证模块
+
+
+
+
+ top.continew
+ continew-starter-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+
+ cn.sticki
+ spel-validator-javax
+
+
+
\ No newline at end of file
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/autoconfigure/ValidatorAutoConfiguration.java b/continew-starter-validation/src/main/java/top/continew/starter/validation/autoconfigure/ValidatorAutoConfiguration.java
similarity index 97%
rename from continew-starter-core/src/main/java/top/continew/starter/core/autoconfigure/ValidatorAutoConfiguration.java
rename to continew-starter-validation/src/main/java/top/continew/starter/validation/autoconfigure/ValidatorAutoConfiguration.java
index 5d231dd4..8d874ce1 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/autoconfigure/ValidatorAutoConfiguration.java
+++ b/continew-starter-validation/src/main/java/top/continew/starter/validation/autoconfigure/ValidatorAutoConfiguration.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.autoconfigure;
+package top.continew.starter.validation.autoconfigure;
import jakarta.annotation.PostConstruct;
import jakarta.validation.Validator;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValue.java b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/EnumValue.java
similarity index 97%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValue.java
rename to continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/EnumValue.java
index d11b9fd7..3b219846 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValue.java
+++ b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/EnumValue.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation.constraints;
+package top.continew.starter.validation.constraints;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValueValidator.java b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/EnumValueValidator.java
similarity index 98%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValueValidator.java
rename to continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/EnumValueValidator.java
index bde17fea..dc14efe6 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValueValidator.java
+++ b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/EnumValueValidator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation.constraints;
+package top.continew.starter.validation.constraints;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.text.CharSequenceUtil;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/JsonString.java b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/JsonString.java
similarity index 96%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/JsonString.java
rename to continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/JsonString.java
index 3c07d359..8e10ea13 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/JsonString.java
+++ b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/JsonString.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation.constraints;
+package top.continew.starter.validation.constraints;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/JsonStringValidator.java b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/JsonStringValidator.java
similarity index 95%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/JsonStringValidator.java
rename to continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/JsonStringValidator.java
index 751b40c7..0e6eb0cf 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/JsonStringValidator.java
+++ b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/JsonStringValidator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation.constraints;
+package top.continew.starter.validation.constraints;
import cn.hutool.json.JSONUtil;
import jakarta.validation.ConstraintValidator;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/Mobile.java b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/Mobile.java
similarity index 96%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/Mobile.java
rename to continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/Mobile.java
index 5aa8a8ae..f8428c7c 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/Mobile.java
+++ b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/Mobile.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation.constraints;
+package top.continew.starter.validation.constraints;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/MobileValidator.java b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/MobileValidator.java
similarity index 95%
rename from continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/MobileValidator.java
rename to continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/MobileValidator.java
index e195e545..be6e9204 100644
--- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/MobileValidator.java
+++ b/continew-starter-validation/src/main/java/top/continew/starter/validation/constraints/MobileValidator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package top.continew.starter.core.validation.constraints;
+package top.continew.starter.validation.constraints;
import cn.hutool.core.util.PhoneUtil;
import jakarta.validation.ConstraintValidator;
diff --git a/continew-starter-validation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/continew-starter-validation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000..c1c6c3d9
--- /dev/null
+++ b/continew-starter-validation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+top.continew.starter.validation.autoconfigure.ValidatorAutoConfiguration
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0526d59b..26f98dd5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,6 +38,7 @@
continew-starter-core
continew-starter-json
continew-starter-api-doc
+ continew-starter-validation
continew-starter-web
continew-starter-cache
continew-starter-auth