@NotNull 注解中groups 的用法
程序员文章站
2022-12-04 14:30:44
原来:@Datapublic class User { private Integer id; @NotNull(message = "用户名不能为空") private String username; @NotNull(message = "密码不能为空") private String password;} @GetMapping("login") public Result login(@Valid User user) {...
原来:
@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名称
- 修改User类,配置了一下username内的groups为TestNotNull.class,groups里面的class需要为接口,可以用service的接口,也可以重新创建
- 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/xc_nostalgia/article/details/109644468
上一篇: 浪潮软件:今年将加大对云计算领域的投入