引入依赖

  1. <dependency>
  2. <groupId>org.hibernate.validator</groupId>
  3. <artifactId>hibernate-validator</artifactId>
  4. <version>6.1.2.Final</version>
  5. </dependency>

在实体类中设置判定条件

image-20210606171900869.png


@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    @NotEmpty(message = "name不能是空")
    private String name;
    @NotEmpty(message = "pwd不能是空")
    private String password;
    @Email
    private String email;
    @Range(max = 99,min = 18,message = "年龄必须在18-99之间")
    private int age;
    @NotNull(message = "状态不能是空")
    @Range(max = 2,min = 0)
    private int state;
    @NotEmpty(message = "pic不能是空")
    private String pic;
    private Date createTime;
    private int visit;
}

方式一:处理检验

  • 需要引入@Valid注解和BindingResult(包含所有的校验信息)
  • 根据需要从BindingResult类中拿取具体的信息进行处理
 @PostMapping("/addUser")
    public JsonResponse addUser(@Valid User user, BindingResult bindingResult){//bindingResult返回是所有的校验结果
        List<ObjectError> allErrors = bindingResult.getAllErrors();//拿取所有的不合格的校验
        //遍历不合格的校验信息,把校验信息添加追加到Str字符串中并以json格式返回
        if (!CollectionUtils.isEmpty(allErrors)){
            StringBuilder str=new StringBuilder();
            allErrors.forEach(error->{
                str.append(error.getDefaultMessage()).append(",");
            });
            return ResultStatus.error(str);
        }

        //进行添加操作
        int result = userService.addUser(user);
        return result>0?ResultStatus.suc("添加成功"):ResultStatus.error("添加失败");
    }

方式二:书写校验工具类

public class ValidationUtil {

    /**
     * 校验器
     */
    private static final Validator validator;
    static {
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        validator=factory.getValidator();
    }

    public static void validate(Object obj){
        Set<ConstraintViolation<Object>> violations = validator.validate(obj);
        if (CollectionUtils.isNotEmpty(violations)){
            StringBuffer str=new StringBuffer();
            violations.forEach(error->{
                str.append(error.getMessage()).append(";");
            });
            throw new ParameterException(str.toString());
        }
    }
}