@NotNull
1.@NotNull:用在基本类型上,不能为null,但可以为空字符串
@NotEmpty
2.@NotEmpty:只能用在集合类上,不能为null,并且长度必须大于0
@NotBlank
3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
@NonNull
4.@NonNull:在方法或构造函数的参数上使用,生成一个空值检查语句
@Validated 和 @Valid
@Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上,不支持嵌套检测
@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上,支持嵌套检测
https://www.jb51.net/program/312913rsl.htm
注意:这里的@NotNull不写的话,只要在此属性上添加了@Valid,即使传递过来的数据中的DATA属性不存在,也会继续校验此属性内部的属性(即嵌套校验),那么DATA对象内部的需要校验的属性如果不存在或不符合其校验规则(因为DATA不存在,那么其内部需要校验的属性肯定也不存在),照样会抛出异常。其实这里加上@NotNull(message=“xxx”),是为了当DATA不存在时,直接就不让程序再继续校验了。对程序执行有些优化。