本篇主要讲解使用javax.validation.constraints,org.hibernate.validator.constraints下的校验方法对实体类进行自动校验, 直接对数据进行校验,通过对接收的数据进行校验,如果不符合我们定义的要求则会提示对应的message信息,具体怎么做的,下面一步步来说明。
初步介绍校验
先看下javax.validation.constraints下面的一些数据校验方法:
AssertFalse AssertTrue DecimalMax DecimalMin Digits Email Future FutureOrPresent Min Max Negative NegativeOrZero NotBlank NotEmpty NotNull Null Past PastOrPresent Pattern Positive PositiveOrZero Size
再来看下org.hibernate.validator.constraints部分校验方法
Length
URL
Range
SafeHtml
具体怎么使用不是本节的重点,大家可以在需要用到的时候参考源码获取网上查阅资料,下面据两个例子来讲解:
@Length(min = 1, max = 30, message = "规则描述字段长度需要在{min}和{max}之间", groups = {InsertGroup.class, UpdateGroup.class}) private String ruleDesc;@ApiModelProperty("规则优先级") @NotEmpty(message="规则优先级不可为空",groups = {InsertGroup.class,UpdateGroup.class}) @Pattern(regexp = RegexpUtils.NON_ZERO_NEGATIVE_INTEGERS_REGEXP,message = "规则优先级必须为正整数") private String salience;
使用上面的校验需要引入依赖:
spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
如果是Spring Mvc,那可以直接添加hibernate-validator依赖
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </dependency>javax.validation在spring-boot-starter-web包也已经被引入了
校验分组
如果需要分组,可以定义分组:
public interface UpdateGroup extends Update { }import org.apache.ibatis.annotations.Insert; public interface InsertGro

本文详细介绍了如何在SpringBoot项目中利用javax.validation和HibernateValidator进行实体类的数据校验,包括各种内置校验注解的使用,如@Length、@NotEmpty等,并展示了自定义校验注解和分组校验的实现。此外,还讲解了REST接口参数的校验原理以及全局异常处理。最后,给出了自定义校验注解和验证器的示例,以及测试自定义校验的方法。
最低0.47元/天 解锁文章
2102

被折叠的 条评论
为什么被折叠?



