spring validation 分组手动校验

  1. 定义两个分组接口GroupDefaultOne、GroupDefaultTwo,接口可以继承javax.validation.groups.Default 类,也可以不继承。
    如果 继承 那么当校验分组的时候,会自动校验没有带分组的参数注解,如@NotNull(message = "xxxx不能为Null")
    如果 不继承 那么当校验分组的时候,只会校验带了对应分组的参数。

  2. 手动校验与自动校验。
    自动校验:可以在controller方法层加上对应的注解,如:@Validated(GroupDefaultOne.class)
    手动校验:

  private static final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
  Set<ConstraintViolation<T>> validate = validator.validate(object, groups);
    if (!validate.isEmpty()) {
        for (ConstraintViolation<T> violation : validate) {
            String message = StrUtil.format("{}{}", violation.getPropertyPath(), violation.getMessage());
            ExceptionUtils.throwBusiness(message);
        }
    }
posted @ 2023-05-17 20:13  杀出重围啊  阅读(516)  评论(0编辑  收藏  举报