java参数校验常见注解介绍

一、@NotEmpty,@NotBlank,@NotNull区别介绍

@NotEmpty:常用于集合,字符串等,不能为空,且长度必须大于0
@NotBlank:用于字符串上,不能为空,且长度必须大于0
@NotNull:字面意思,一般用于基本类型,不为空,但可以长度为0

PS:@NotEmpty不仅可以用于字符串,还可以用于集合,作用范围相较@NotBlank更大,@NotBlank判断某字符串是否不为空且长度不为0且不由空白符(空格)构成

二、@Validated和@Valid的区别

作用范围:

@Validated:
用在类型、方法和方法参数上。但不能用于成员属性(field)。
@Valid:
可以用在方法、构造函数、方法参数和成员属性(field)上。
**区别:**在能不能在成员属性上。Vaildated是在Vaild基础上进行封装的。
提供#分组功能
分组功能是在参数校验注解上加上groups实现,例如:

	//需要新增分组接口
	public interface IGroupB {
	}
    //只在分组为IGroupB的情况下进行验证
    @Min(value = 18, message = "年龄不能小于18岁"
    , groups = {IGroupB.class})
    
    @Min(value = 18, message = "年龄不能小于18岁"
	, groups = {UpdateGroup.class, AddGroup.class})

如果需要做参数嵌套校验时,如学校实体类中有一个学生实体类作为属性,这时候如果直接在controller层的参数那里直接使用@Valid或者@Validated的话,无法完成对学生实体类的校验,需要在学生实体类上面加上@Valid的注解才行。

三、其他参数校验注解

java参数校验常见注解介绍_第1张图片

你可能感兴趣的:(java,开发语言)