@NotNull 注解中groups 的用法

2022-07-27,,,

原来:

@Data
public class User {

    private Integer id;
    @NotNull(message = "用户名不能为空")
    private String username;
    @NotNull(message = "密码不能为空")
    private String password;
}
    @GetMapping("login")
    public Result login(@Valid User user) {
		System.out.println("测试@notNull注解");
        //验证密码操作省略
        return Result.suc();
    }

问题

现在是登录接口我们只需要判断username和password,如果是别的接口也是用User类接收的,但是username和password可以为空怎么办?
在NotNull注解里面配置group,需要验证的时候,就在controller参数注解中加上这个groups名称

  1. 修改User类,配置了一下username内的groups为TestNotNull.class,groups里面的class需要为接口,可以用service的接口,也可以重新创建
  2. controller中,没有使用@Valid注解了,而是要使用@Validated,里面value代表的是,在User类里面@NotNull注解里面配置了groups里面有TestNotNull.class的字段判断会生效
    那么当前配置的话,就只会判断username是否为空,而password因为没有配置同样的groups属性,所以不会生效
@Data
public class User {

    private Integer id;
    @NotNull(message = "用户名不能为空",groups = {TestNotNull.class})
    private String username;
    @NotNull(message = "密码不能为空")
    private String password;
}
  @GetMapping("test")
    public Result test(@Validated(value = {TestNotNull.class}) User user) {
        System.out.println("测试@notNull注解");
        //验证密码操作省略
        return Result.suc();
    }

参考https://blog.csdn.net/weixin_44906271/article/details/105844930?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduend~default-3-105844930.nonecase&utm_term=notnull%E6%B3%A8%E8%A7%A3groups&spm=1000.2123.3001.4430

本文地址:https://blog.csdn.net/xc_nostalgia/article/details/109644468

《@NotNull 注解中groups 的用法.doc》

下载本文的Word格式文档,以方便收藏与打印。