mirror of
https://github.com/continew-org/continew-starter.git
synced 2025-09-09 20:57:23 +08:00
refactor(core): 优化 JSR 303 校验方法
This commit is contained in:
@@ -16,14 +16,9 @@
|
|||||||
|
|
||||||
package top.continew.starter.core.util.validate;
|
package top.continew.starter.core.util.validate;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.hutool.core.text.CharSequenceUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
|
||||||
import jakarta.validation.ConstraintViolation;
|
|
||||||
import top.continew.starter.core.exception.BadRequestException;
|
import top.continew.starter.core.exception.BadRequestException;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.BooleanSupplier;
|
import java.util.function.BooleanSupplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -178,21 +173,4 @@ public class ValidationUtils extends Validator {
|
|||||||
public static void throwIf(BooleanSupplier conditionSupplier, String template, Object... params) {
|
public static void throwIf(BooleanSupplier conditionSupplier, String template, Object... params) {
|
||||||
throwIf(conditionSupplier, CharSequenceUtil.format(template, params), EXCEPTION_TYPE);
|
throwIf(conditionSupplier, CharSequenceUtil.format(template, params), EXCEPTION_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* JSR 303 校验
|
|
||||||
*
|
|
||||||
* @param obj 被校验对象
|
|
||||||
* @param groups 分组
|
|
||||||
*/
|
|
||||||
public static void validate(Object obj, Class<?>... groups) {
|
|
||||||
jakarta.validation.Validator validator = SpringUtil.getBean(jakarta.validation.Validator.class);
|
|
||||||
Set<ConstraintViolation<Object>> violations = validator.validate(obj, groups);
|
|
||||||
if (CollUtil.isEmpty(violations)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
throw ReflectUtil.newInstance(EXCEPTION_TYPE, violations.stream()
|
|
||||||
.map(ConstraintViolation::getMessage)
|
|
||||||
.findFirst());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -19,9 +19,13 @@ package top.continew.starter.core.util.validate;
|
|||||||
import cn.hutool.core.text.CharSequenceUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
import jakarta.validation.ConstraintViolation;
|
||||||
|
import jakarta.validation.ConstraintViolationException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
import java.util.function.BooleanSupplier;
|
import java.util.function.BooleanSupplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -32,6 +36,8 @@ import java.util.function.BooleanSupplier;
|
|||||||
*/
|
*/
|
||||||
public class Validator {
|
public class Validator {
|
||||||
private static final Logger log = LoggerFactory.getLogger(Validator.class);
|
private static final Logger log = LoggerFactory.getLogger(Validator.class);
|
||||||
|
private static final jakarta.validation.Validator VALIDATOR = SpringUtil
|
||||||
|
.getBean(jakarta.validation.Validator.class);
|
||||||
|
|
||||||
protected Validator() {
|
protected Validator() {
|
||||||
}
|
}
|
||||||
@@ -195,4 +201,18 @@ public class Validator {
|
|||||||
throw ReflectUtil.newInstance(exceptionType, message);
|
throw ReflectUtil.newInstance(exceptionType, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSR 303 校验
|
||||||
|
*
|
||||||
|
* @param obj 被校验对象
|
||||||
|
* @param groups 分组
|
||||||
|
* @since 2.3.0
|
||||||
|
*/
|
||||||
|
public static void validate(Object obj, Class<?>... groups) {
|
||||||
|
Set<ConstraintViolation<Object>> violations = VALIDATOR.validate(obj, groups);
|
||||||
|
if (!violations.isEmpty()) {
|
||||||
|
throw new ConstraintViolationException(violations);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user