一、通用用法
除了@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 的真正区别和用法!