|
|
@@ -1,7 +1,6 @@
|
|
|
package cn.hutool.extra.validation;
|
|
|
|
|
|
import cn.hutool.extra.validation.BeanValidationResult.ErrorMessage;
|
|
|
-import org.hibernate.validator.HibernateValidator;
|
|
|
|
|
|
import javax.validation.ConstraintViolation;
|
|
|
import javax.validation.Validation;
|
|
|
@@ -10,17 +9,25 @@ import java.util.Set;
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * java bean 校验工具类
|
|
|
+ * java bean 校验工具类,此工具类基于validation-api(jakarta.validation-api)封装
|
|
|
+ *
|
|
|
+ * <p>在实际使用中,用户需引入validation-api的实现,如:hibernate-validator</p>
|
|
|
+ * <p>注意:hibernate-validator还依赖了javax.el,需自行引入。</p>
|
|
|
*
|
|
|
* @author chengqiang
|
|
|
*/
|
|
|
-public class BeanValidationUtil {
|
|
|
+public class ValidationUtil {
|
|
|
+
|
|
|
+ private static final Validator validator;
|
|
|
|
|
|
- private static final Validator validator = Validation.byProvider(HibernateValidator.class).configure().failFast(false).buildValidatorFactory().getValidator();
|
|
|
+ static {
|
|
|
+ validator = Validation.buildDefaultValidatorFactory().getValidator();
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 校验对象
|
|
|
*
|
|
|
+ * @param <T> Bean类型
|
|
|
* @param bean bean
|
|
|
* @param groups 校验组
|
|
|
* @return {@link Set}
|
|
|
@@ -30,19 +37,9 @@ public class BeanValidationUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 校验对象
|
|
|
- *
|
|
|
- * @param bean bean
|
|
|
- * @param groups 校验组
|
|
|
- * @return {@link BeanValidationResult}
|
|
|
- */
|
|
|
- public static <T> BeanValidationResult warpValidate(T bean, Class<?>... groups) {
|
|
|
- return warpBeanValidationResult(validate(bean, groups));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
* 校验bean的某一个属性
|
|
|
*
|
|
|
+ * @param <T> Bean类型
|
|
|
* @param bean bean
|
|
|
* @param propertyName 属性名称
|
|
|
* @return {@link Set}
|
|
|
@@ -52,6 +49,18 @@ public class BeanValidationUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 校验对象
|
|
|
+ *
|
|
|
+ * @param <T> Bean类型
|
|
|
+ * @param bean bean
|
|
|
+ * @param groups 校验组
|
|
|
+ * @return {@link BeanValidationResult}
|
|
|
+ */
|
|
|
+ public static <T> BeanValidationResult warpValidate(T bean, Class<?>... groups) {
|
|
|
+ return warpBeanValidationResult(validate(bean, groups));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 校验bean的某一个属性
|
|
|
*
|
|
|
* @param bean bean
|
|
|
@@ -69,9 +78,8 @@ public class BeanValidationUtil {
|
|
|
* @return {@link BeanValidationResult}
|
|
|
*/
|
|
|
private static <T> BeanValidationResult warpBeanValidationResult(Set<ConstraintViolation<T>> constraintViolations) {
|
|
|
- BeanValidationResult result = new BeanValidationResult();
|
|
|
+ BeanValidationResult result = new BeanValidationResult(constraintViolations.isEmpty());
|
|
|
for (ConstraintViolation<T> constraintViolation : constraintViolations) {
|
|
|
- result.setSuccess(Boolean.FALSE);
|
|
|
ErrorMessage errorMessage = new ErrorMessage();
|
|
|
errorMessage.setPropertyName(constraintViolation.getPropertyPath().toString());
|
|
|
errorMessage.setMessage(constraintViolation.getMessage());
|