SpringBoot MVC层数据校验

@Validated & @Valid区别

  • @Validated支持分组校验,但不支持嵌套校验
  • @Valid不支持分组,但支持嵌套
  • 具体使用请另行百度
  • 通常,两种配合使用

@Validated & @Valid使用

@Validated,controller层一定要加此注解,否则校验不生效

  1. 一层校验,直接加@NotBlank等注解即可
public void test(@NotBland String a) {
        System.out.println(a);
    }
  1. 二层校验,参数类型是对象,需要校验对象里的属性,此时参数前加这两个注解之一才会生效,如果是List包装的对象,只有@Valid才会生效,所以统一加@Valid肯定是没问题的
public void sendCmd1(@RequestBody @Valid List t) {
        System.out.println(t);
    }
@Data
public class T {
    @NotNull
    private Integer id;
}
  1. 三层校验及以上,对象里面又包含了另一个对象,需要校验此对象里的属性,此时只能在此对象上加@Valid才会生效
@Data
public class T {
    @NotNull
    private Integer id;
    @Valid
    private TT tt;
}

你可能感兴趣的:(SpringBoot MVC层数据校验)