Hibernate Validator 是 Bean Validation 的参考实现,作用是实现数据的校验;在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,无需编写复杂的代码,方便高效。
Hibernate Validator的依赖已经整合到了Spring-Boot-Starter-Web
中,默认无需使用额外的依赖;若想自己导入依赖的话,相关信息如下
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.16.Final</version>
</dependency>
接着我们在实体类
中针对需要进行校验的字段加上对应的注解即可,单个属性可以配合多个校验注解使用,常用的注解如下:
// Bean Validation 默认内置注解
// ------------------------------
@Null // 被注释的属性必须为null
@NotNull // 被注释的元素必须不为 null
@AssertTrue // 被注释的元素必须为 true
@AssertFalse // 被注释的元素必须为 false
@Min(value) // 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) // 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) // 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) // 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=??, min=??) // 被注释的元素的大小必须在指定的范围内
@Past // 被注释的元素必须是一个过去的日期
@Future // 被注释的元素必须是一个将来的日期
@Pattern(regex=正则表达式,message=??) // 被注释的元素必须符合指定的正则表达式
// Hibernate Validation 额外的注解 (参数中的massage为提示信息)
// ------------------------------
@NotBlank(message = ??) // 验证字符串非null,且长度必须大于0
@Email // 被注释的元素必须是电子邮箱地址
@Length(min=?,max=?,message = ??) // 被注释的字符串的大小必须在指定的范围内
@NotEmpty // 被注释的字符串的必须非空
@Range(min=?,max=?,message=??) // 被注释的元素必须在合适的范围内
然后可以在Controller
中方法接收参数时,在需要进行校验的数据前额外加上一个@Valid
注解,表示开启对该参数的校验。