在项目开发中有时候我们需要设置一些校验规则,例如注册功能,要求用户设置符合格式的用户名例如长度,格式等。虽然前端可以对其进行校验,后端也有相应的校验方法。
在项目中导入validation坐标
<!--validation依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
在参数上添加@Pattern注解,指定校验规则
在如下的User类中,我需要对nickname属性进行1~10位长度的校验,在nickname属性上使用@Pattern注解,根据正则表达式编写校验规则
在Controller类上添加@Validated注解
在全局异常处理器中处理参数校验失败的异常
参数分组校验
在进行校验时,不同业务功能对同一个属性的校验要求不同。
例如在进行分类添加时,一般ID都是自增的,不需要用户传入ID属性;而在更新操作时,需要传入ID,根据ID进行更新。如果这里不对ID属性进行分组设置,在进行添加操作时需要用户传入ID,进行分组后,可以根据不同需求进行校验。
1.如何定义分组
- 在实体类内部定义接口
2.如何对校验项分组
- 通过groups属性指定
将id属性的不为null校验规则放入Update分组
3.校验时如何指定分组
- 给@Validated注解的value属性赋值
添加功能这里需要对属于Add分组的校验规则生效
4.校验项默认属于什么组
- Default