spring-boot-validator参数校验系列(2)--------分组校验

前言

目录

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属性添加分组标记接口

@Data//lombok注解
public class MyPerson {

    @NotBlank(message = "id不可为空!",groups = {Update.class})
    private String id;
    
    @Size(max = 8,min = 1, message = "姓名字符超出范围!")
    private String name;
}

(3)Controller中的@Validated 注解加入标记接口(首尾呼应写作方法)。

这里以更新为例,因为name没有进行Update.class分组,所以不填(即:null)不会校验

PostMan访问

spring-boot-validator参数校验系列(2)--------分组校验

后台输出结构

spring-boot-validator参数校验系列(2)--------分组校验

上一篇:spring-boot-validator参数校验系列(4)--------自定义参数校验异常


下一篇:jar文件打开时闪一下没有了,win7升级win10系统后出现