关于 @Validated 和 @Valid

@Validated 和 @Valid 只能在 Controller 层直接调用,要想灵活的调用,需要编写一个 ValidationUtil 工具类:

public class ValidatorUtil {
    private static final Validator VALIDATOR;

    static {
        VALIDATOR = Validation.buildDefaultValidatorFactory().getValidator();
    }

    /**
     * 校验对象
     *
     * @param object 待校验对象
     * @param groups 待校验的组
     */
    public static void validateEntity(Object object, Class<?>... groups) {
        Set<ConstraintViolation<Object>> constraintViolations = VALIDATOR.validate(object, groups);
        if (!constraintViolations.isEmpty()) {
            ConstraintViolation<Object> constraint = constraintViolations.iterator().next();
            throw new UnifiedException(constraint.getMessage());
        }
    }
}

也可以考虑直接封装成一个注解来使用

更多内容:

posted @ 2022-09-05 15:26  紅豆DuoLaameng  阅读(55)  评论(0)    收藏  举报