常用注解如下:
@Null
被注解的元素必须为 null。
@NotNull
被注解的元素不能为 null,但可以是空字符串或空集合。
@NotBlank
用于字符串,被注解的元素不能为 null,且去除首尾空格后长度必须大于 0(即不能是空白字符串)。
@NotEmpty
用于字符串、集合、数组等,被注解的元素不能为 null,且长度 / 大小必须大于 0(字符串不能是空字符串,集合 / 数组不能是空集合 / 空数组)。
@Size
用于字符串、集合、数组等,限制元素的长度或大小范围。
示例:@Size(min = 2, max = 10) 表示长度 / 大小必须在 2 到 10 之间。
@Min
用于数值类型(如 int、long、BigDecimal 等),被注解的元素必须大于等于指定的最小值。
示例:@Min(18) 表示数值必须大于等于 18。
@Max
用于数值类型,被注解的元素必须小于等于指定的最大值。
示例:@Max(100) 表示数值必须小于等于 100。
@DecimalMin
类似 @Min,但支持更精确的十进制数值(如 BigDecimal),参数为字符串形式的数值。
示例:@DecimalMin("0.01")。
@DecimalMax
类似 @Max,支持精确十进制数值,参数为字符串形式的数值。
示例:@DecimalMax("9999.99")。
@Positive
用于数值类型,被注解的元素必须是正数(大于 0)。
@PositiveOrZero
用于数值类型,被注解的元素必须是正数或 0。
@Negative
用于数值类型,被注解的元素必须是负数(小于 0)。
@NegativeOrZero
用于数值类型,被注解的元素必须是负数或 0。
@Email
用于字符串,被注解的元素必须是合法的电子邮件地址格式。
示例:@Email(message = "请输入合法的邮箱地址")。
@Pattern
用于字符串,被注解的元素必须匹配指定的正则表达式。
示例:@Pattern(regexp = "^[a-zA-Z0-9]{6,12}$", message = "密码必须是6-12位字母或数字")。
@Digits
用于数值类型,限制整数部分和小数部分的位数。
示例:@Digits(integer = 3, fraction = 2) 表示整数部分最多 3 位,小数部分最多 2 位。
@Future
用于日期或时间类型(如 Date、LocalDate 等),被注解的元素必须是未来的时间。
@FutureOrPresent
用于日期或时间类型,被注解的元素必须是未来的时间或当前时间。
@Past
用于日期或时间类型,被注解的元素必须是过去的时间。
@PastOrPresent
用于日期或时间类型,被注解的元素必须是过去的时间或当前时间。
