一、 Bean Validation
Bean Validation是Java定义的一套基于注解的数据校验规范。Hibernate Validation是Bean Validation的一个实现。
Bean Validation官网:https://beanvalidation.org/
Hibernate Validation官网:http://hibernate.org/validator/
二、注解介绍
validator内置注解:
注解 | 作用 |
---|---|
@Null | 被注释的元素必须为 null |
@NotNull | 被注释的元素必须不为 null |
@AssertTrue | 被注释的元素必须为 true |
@AssertFalse | 被注释的元素必须为 false |
@Min(value) | 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 |
@Max(value) | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
@DecimalMin(value) | 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 |
@DecimalMax(value) | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
@Size(max, min) | 被注释的元素的大小必须在指定的范围内 |
@Digits (integer, fraction) | 被注释的元素必须是一个数字,其值必须在可接受的范围内 |
@Past | 被注释的元素必须是一个过去的日期 |
@Future | 被注释的元素必须是一个将来的日期 |
@Pattern(value) | 被注释的元素必须符合指定的正则表达式 |
Hibernate Validator 附加的注解:
注解 | 作用 |
---|---|
被注释的元素必须是电子邮箱地址 | |
@Length | 被注释的字符串的大小必须在指定的范围内 |
@NotEmpty | 被注释的字符串的必须非空 |
@Range | 被注释的元素必须在合适的范围内 |
@NotBlank | 验证字符串非null,且长度必须大于0 |
三、使用方法
1、添加依赖
使用idea新建SpringBoot项目,添加依赖:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.1.Final</version>
</dependency>
2、创建传输对象:
@Data
public class StudentDTO {
@NotNull(message = "id不能为空!")
private Integer id;
@NotNull(message = "姓名不能为空!")
private String name;
@NotNull(message = "年龄不能为空!")
private Integer age;
@NotNull(message = "性别不能为空!")
private String sex;
}
3、创建controller,只需在参数前面加上@Validated注解就可以完成校验:
@RestController
public class DemoController {
@PostMapping("/test")
public RespVO test(@RequestBody @Validated StudentDTO studentDTO,BindingResult result){
if(result.hasErrors()){
return ApiResponse.error(result.getFieldError().getDefaultMessage());
}
return ApiResponse.success("success");
}
}