java 注解 参数校验_Java 注解方式校验请求参数

1. 参数校验常用注解

注解

验证的数据类型

备注

Null

任意类型

参数值必须是 Null

NotNull

任意类型

参数值必须不是 Null

NotBlank

只能作用于字符串

字符串不能为 null,而且字符串长度必须大于0,至少包含一个非空字符串

NotEmpty

CharSequence

Collection

Map

Array

字符串:字符串长度必须大于0,空字符串(“ ”)可以通过校验;

Collection:集合大小必须大于0;

Map:map的大小必须大于0;

Array:数组长度必须大于0;

Size

CharSequence

Collection

Map

Array

同 NotEmpty

Range

数字类型

字符串类型

数值或者字符串的值必须在 min 和 max 指定的范围内

Length

字符串类型

字符串的长度在min 和  max 之间

Pattern

字符串类型

验证字符串是否符合正则表达式

Min

整型类型

参数值必须大于等于 最小值

Max

整型类型

参数值必须小于等于 最大值

DecimalMin

整型类型

参数值必须大于等于 最小值

DecimalMax

整型类型

参数值必须小于等于 最大值

AssertTrue

布尔类型

参数值必须为 true

AssertFalse

布尔类型

参数值必须为 false

Past

时间类型

参数值必须小于 当前时间

Future

时间类型

参数值必须大于 当前时间

2.  @Validated 和 @Valid

2.1 相同点

在检验参数符合规范的功能上基本一致;

2.2 不同点

2.2.1 提供者

validated 是Spring Validation验证框架对参数的验证机制;

valid是 javax 提供的参数验证机制

2.2.2 作用域

validated :类,方法,参数

valid:方法, 字段, 构造方法, 参数, TYPE_USE;

TYPE_USE:

在 Java 8 之前的版本中,只能允许在声明式前使用Annotation。而在Java 8版本中,Annotation可以被用在任何使用Type的地方,例如:初始化对象时(new),对象类型转化时,使用implements表达式时,或者使用throws表达式时。

//初始化对象时

String myString = new@Valid String();//对象类型转化时

myString =(@Valid String) str;//使用 implements 表达式时

class MyList implements List{

...

}//使用 throws 表达式时

public void validateValues() throws@Valid ValidationFailedException{

...

}

3. 嵌套检验

在被检验的字段上添加 @Valid 注解就可以实现嵌套检验

当对象 Man 的字段 houses 包含 House 对象类型时,在检验 houses 字段时可以检验 House 对象的属性字段时,就称为嵌套检验。

示例如下:

在检验 Man 对象的 houses 字段时,在houses 字段上添加 @Valid 注解后,就可以检验 list 中的 House 的属性是否符合要求;

否则只会检验 houses 的集合大小是否大于1,不会校验集合中的 House 对象,比如 House 对象的 name 长度是否符合要求。

classMan{

@Valid

@Size(min= 1)private Listhouses;

}classHouse{

@Length(min= 1,max = 10)privateString name;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值