一、通用用法
除了@Null,@ NotNull,@ NotBlank,@NotEmpty 这四个外,其他所有的注解,传 null 时都会被当作有效处理。
注解 | 验证的数据类型 | 备注 |
---|---|---|
Null | 任意类型 | 参数值必须是 Null |
NotNull | 任意类型 | 参数值必须不是 Null |
NotBlank | 只能作用于字符串 | 字符串不能为 null,而且字符串长度必须大于 0,至少包含一个非空字符串 |
NotEmpty | CharSequence Collection Map Array | 参数值不能为 null,且不能为空 (字符串长度必须大于 0,空字符串(“ ”)可以通过校验) |
Size(min,max ) | CharSequence Collection Map Array | 字符串:字符串长度必须在指定的范围内 Collection:集合大小必须在指定的范围内 Map:map 的大小必须在指定的范围内 Array:数组长度必须在指定的范围内 |
Pattern(regexp) | 字符串类型 | 验证字符串是否符合正则表达式 |
Min(value) | 整型类型 | 参数值必须大于等于 最小值 |
Max(value) | 整型类型 | 参数值必须小于等于 最大值 |
DecimalMin(value) | 整型类型 | 参数值必须大于等于 最小值 |
DecimalMax(value) | 整型类型 | 参数值必须小于等于 最大值 |
Positive | 数字类型 | 参数值为正数 |
PositiveOrZero | 数字类型 | 参数值为正数或 0 |
Negative | 数字类型 | 参数值为负数 |
NegativeOrZero | 数字类型 | 参数值为负数或 0 |
Digits(integer,fraction) | 数字类型 | 参数值为数字,且最大长度不超过 integer 位,整数部分最高位不超过 fraction 位 |
AssertTrue | 布尔类型 | |
AssertFalse | 布尔类型 | 参数值必须为 false |
Past | 时间类型(Date) | 参数值为时间,且必须小于 当前时间 |
PastOrPresent | 时间类型(Date) | 参数值为时间,且必须小于或等于 当前时间 |
Future | 时间类型(Date) | 参数值为时间,且必须大于 当前时间 |
FutureOrPresent | 时间类型(Date) | 参数值为时间,且必须大于或等于 当前日期 |
字符串类型 | 被注释的元素必须是电子邮箱地址 |
参考文章:
别再乱用了,这才是 @Validated 和 @Valid 的真正区别和用法!