可以说几乎所有的应用场景中,参数验证都在编写业务逻辑前完成,严格确保进来的数据是合法且符合要求的。
Java Web 开发领域,也早有较为完善的 Bean Validation 为 Java Bean 验证定义了相应的元数据模型和 API。首先,在项目中引入 web 模块的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Hibernate Validator 是 Bean Validation 的一种实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,以及一些附加的 constraint。如果想了解更多请查看 http://www.hibernate.org/subprojects/validator.html
具体以及常用的 constraint 包含如下:
@Data
public class Validate {
// 空和非空检查: @Null、@NotNull、@NotBlank、@NotEmpty
@Null(message = "验证是否为 null")
private Integer isNull;
@NotNull(message = "验证是否不为 null, 但无法查检长度为0的空字符串")
private Integer id;
@NotBlank(message = "检查字符串是不是为 null,以及去除空格后长度是否大于0")
private String name;
@NotEmpty(message = "检查是否为 NULL 或者是 EMPTY")
private List<String> stringList;
// Boolean值检查: @AssertTrue、@AssertFalse
@AssertTrue(message = " 验证 Boolean参数是否为 true")
private Boolean isTrue;
@AssertFalse(message = "验证 Boolean 参数是否为 false ")
private Boolean isFalse;
// 长度检查: @Size、@Length
@Size(min = 1, max = 2, message = "验证(Array,Collection,Map,String)长度是否在给定范围内")
private List<Integer> integerList;
@Length(min = 8, max = 30