Validation 和 validator 包提供了一系列校验用注解,帮助我们在 RESTful 服务请求中实现期望的数据校验,其注解的功能包括但不限于入参的存在性判断、非空判断、数值取值范围限定、特定含义数据格式校验、校验失败提示信息等。
Maven 依赖
在 SpringBoot 2.3 版本之前的项目中,主要需要添加的依赖包括以下两个。其中 spring-boot-starter-web
包含了 spring-boot-starter-validation
这个 maven 包,而里面则添加了 javax-validation
和 hibernate-validator
两个包含检验注解的依赖包。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
而在 SpringBoot 2.3 之后的版本则需要单独引入 spring-boot-starter-validation
这个 maven 包。
常用注解说明
Maven 包:javax.validation.constraints:validation-api-2.0.1.Final
注解
作用数据类型
说明
@Null
任何类型
对象必须为空
@NotNull
任何类型
对象不为空
@NotBlank
字符串
对象不为空,字符串去掉前后空格后长度不为0
@NotEmpty
字符串、集合、数组
对象不为空,且字符串长度不为0,集合、数组大小不为0
@AssertTrue
布尔型
必须为true;null值有效,Boolean通过校验,boolean不可
@AssertFalse
布尔型
必须为false;null 可通过校验
@Min(number)
整型数
数值必须大于或等于指定的最小值
@Max(number)
整型数
数值必须小于或等于指定的最大值
@DecimalMin(decimal)
浮点型
数值必须大于或等于指定的最小值,内部使用BigDecimal定义数值对象;为 null 是校验通过;默认包含边界值
@DecimalMax(decimal)
浮点型
数值必须小于或等于指定的最大值,内部使用BigDecimal定义数值对象;为 null 是校验通过;默认包含边界值
@Positive
整型