前言
目录
spring-boot-validator参数校验系列(1)--------基本参数校验。
spring-boot-validator参数校验系列(2)--------分组校验
spring-boot-validator参数校验系列(3)--------自定义校验注解
spring-boot-validator参数校验系列(4)--------自定义参数校验异常
一、为什么要分组校验?
因为对同一个实体有不同的业务操作,比如添加用户时,用户名不可为空,更新用户信息时,id不可为空。此时采取统一交验,则会出现添加时,必须填写id。
二、如何实现?
(1)首先完成基本校验spring-boot-validator参数校验系列(1)--------基本参数校验。
(2)创建分组校验标记接口
import javax.validation.groups.Default; /** * @Description : 校验注解标记接口,更新类型。注意: * 若不实现Default接口,那么默认的没有添加分组的注解则不会进行校验 也就是如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效 */ public interface Update extends Default { }
如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!
如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!
如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!
重要的事情说三遍!!!
(3)校验注解中groups属性添加分组标记接口
//lombok注解 public class MyPerson { message = "id不可为空!",groups = {Update.class}) ( private String id; max = 8,min = 1, message = "姓名字符超出范围!") ( private String name; }
(3)Controller中的@Validated 注解加入标记接口(首尾呼应写作方法)。
这里以更新为例,因为name没有进行Update.class分组,所以不填(即:null)不会校验
PostMan访问
后台输出结构