基础注解
| 注解 | 功能 | 适用类型 | 备注 |
|---|---|---|---|
@Null | 被注释的元素必须为 null | 任意类型 | 通常用于校验某些字段必须为空的场景,例如更新时某些字段不可修改。 |
@NotNull | 被注释的元素必须不为 null | 任意类型 | 常用于校验必填字段。 |
@AssertTrue | 被注释的元素必须为 true | Boolean 或其包装类 | 常用于逻辑校验,例如标识是否接受协议等。 |
@AssertFalse | 被注释的元素必须为 false | Boolean 或其包装类 | 用于确保布尔值为 false。 |
数字校验注解
| 注解 | 功能 | 适用类型 | 备注 |
|---|---|---|---|
@Min(value) | 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 | 数字类型 | 用于校验字段值下限,例如金额、年龄等。 |
@Max(value) | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 | 数字类型 | 用于校验字段值上限,例如人数限制等。 |
@DecimalMin(value) | 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 | 数字类型(支持小数) | 与 @Min 类似,但支持小数校验。 |
@DecimalMax(value) | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 | 数字类型(支持小数) | 与 @Max 类似,但支持小数校验。 |
@Digits(integer, fraction) | 被注释的元素必须是一个数字,其值必须符合整数位和小数位的限制 | 数字类型(支持小数) | 用于校验数据精度,例如金额字段的整数位和小数位限制。 |
集合和字符串校验注解
| 注解 | 功能 | 适用类型 | 备注 |
|---|---|---|---|
@Size(min, max) | 被注释的元素的大小必须在指定的范围内 | 集合、数组、字符串等 | 用于校验集合长度或字符串长度,例如密码长度限制。 |
@NotEmpty | 被注释的元素必须不为空(不能为空字符串或空集合) | 字符串、集合 | 常用于校验必填字段,且不能只包含空白字符。 |
@NotBlank | 被注释的字符串必须非空(不允许空白字符) | 字符串类型 | 类似 @NotEmpty,但更严格,适用于字符串。 |
@Length(min, max) | 被注释的字符串长度必须在指定范围内 | 字符串类型 | 由 Hibernate Validator 提供,与 @Size 类似。 |
日期校验注解
| 注解 | 功能 | 适用类型 | 备注 |
|---|---|---|---|
@Past | 被注释的元素必须是一个过去的日期 | 日期类型 | 常用于校验生日等字段。 |
@Future | 被注释的元素必须是一个将来的日期 | 日期类型 | 常用于校验预约时间等字段。 |
@PastOrPresent | 被注释的元素必须是过去或当前的日期 | 日期类型 | 更宽松的过去日期校验。 |
@FutureOrPresent | 被注释的元素必须是未来或当前的日期 | 日期类型 | 更宽松的未来日期校验。 |
正则校验注解
| 注解 | 功能 | 适用类型 | 备注 |
|---|---|---|---|
@Pattern(regexp) | 被注释的元素必须符合指定的正则表达式 | 字符串类型 | 用于校验复杂格式,如身份证号、手机号、密码规则等。 |
@Email | 被注释的元素必须是一个合法的电子邮箱地址 | 字符串类型 | 支持基本的邮箱格式校验,但不校验域名是否真实存在。 |
范围校验注解
| 注解 | 功能 | 适用类型 | 备注 |
|---|---|---|---|
@Range(min, max) | 被注释的元素必须在指定范围内 | 数字类型 | 由 Hibernate Validator 提供,与 @Min 和 @Max 类似。 |