Spring boot 参数分组校验

项目源码下载:demo-boot-group-validation.zip 访问密码:9987

分组校验演示项目结构

分组校验演示项目结构

演示项目创建


maven主要依赖:
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

提示:低版本的spring boot 无需单独引入spring-boot-starter-validation


演示数据模型:
@Data
public class UserInfo {
    @NotNull(groups = {Update.class},message = "请填写id信息")
    private Long id;
    @NotEmpty(groups = {Add.class,Update.class},message = "请填写用户名称")
    private String name;
}

controller编写:
    @PostMapping("/test/add")
    public Object add(@RequestBody @Validated(value = {Add.class})UserInfo userInfo){
        return userInfo;
    }

    @PostMapping("/test/update")
    public Object update(@RequestBody @Validated(value = {Update.class})UserInfo userInfo){
        return userInfo;
    }
 

Postman 数据测试分组校验

运行项目,然后通过postman提交数据测试
可以看到分组校验错误信息
可以看到用户名称校验的错误信息,因为新增我们只校验了Add.class分组,所以当前的结果是正常的。

 
更新组校验

调用更新接口,校验了更新组的字段,可以看到 id和name字段都参与了校验,验证了分组校验的成功。
真确数据

当填入正确数据,返回的结果是正常的,没有走校验错误返回


 

评论区域