@Validated & @Valid区别
- @Validated支持分组校验,但不支持嵌套校验
- @Valid不支持分组,但支持嵌套
- 具体使用请另行百度
- 通常,两种配合使用
@Validated & @Valid使用
@Validated,controller层一定要加此注解,否则校验不生效
- 一层校验,直接加@NotBlank等注解即可
public void test(@NotBland String a) {
System.out.println(a);
}
- 二层校验,参数类型是对象,需要校验对象里的属性,此时参数前加这两个注解之一才会生效,如果是List包装的对象,只有@Valid才会生效,所以统一加@Valid肯定是没问题的
public void sendCmd1(@RequestBody @Valid List<T> t) {
System.out.println(t);
}
@Data
public class T {
@NotNull
private Integer id;
}
- 三层校验及以上,对象里面又包含了另一个对象,需要校验此对象里的属性,此时只能在此对象上加@Valid才会生效
@Data
public class T {
@NotNull
private Integer id;
@Valid
private TT tt;
}
网友评论