引入依赖
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.2.Final</version>
</dependency>
在实体类中设置判定条件

@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());
}
}
}