title: Springboot 参数校验date: 2022-02-21 17:01:33
安装环境及版本:
- springboot:2.2.6
- jdk: 11
一 @Validated和@Valid区别
- 分组
@Validated支持,@Valid不支持
- 注解地方
@Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上
@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上
嵌套校验
@Datapublic class Test{@NotNullprivate Integer osType;@Valid//用于嵌套验证private List<ListDTO> item;@Datapublic static class ListDTO {@NotNullprivate String name;}}
@Validated和@Valid直接加在controller方法参数前,都不会自动对参数进行嵌套验证
如上,item 必须加 @Valid 才能嵌套校验 name
二 校验注解
- @NotNull
#适用于基本数据类型(Integer,Long,Double等等),不能为null,但可以为empty (""," "," ")
- @NotEmpty
#适用于 String、Collection集合、Map、数组等等,不能为null,而且长度必须大于0 (" "," ")
- @NotBlank
#只能作用在String上,不能为null,而且调用trim()后,长度必须大于0 ("test") 即:必须有实际字符
