相关文章:
在日常与前端的交互中,我们会发现,尽管前端已经对请求参数做了校验,但有时候后端程序还是会报错,因此我们可以在后端再做一次校验,以确保数据的正确性,此时校验注解就派上了用场
一、注解
-
@Null
- 字段必须为 null
-
@NotNull
- 字段不能为 null
-
@NotBlank
-
字段不能为 null,且去掉首尾空格后长度不能为 0
-
只能作用于字符串
-
-
@NotEmpty
-
字段不能为 null 且不能为空
-
可以作用于字符串,其长度不能为 0
-
可作用于 Array、Collection、Map,其大小不能为 0
-
-
@Email
- 字段必须为邮箱格式
-
@Max(value = i)
- 字段必须为数字,且数值不能超过指定的最大值 i
-
@Min(value = i)
- 字段必须为数字,且数值不能超过指定的最小值 i
-
@Size(max = i, min = j)
-
字段长度必须在指定的范围之间
-
可以作用于字符串,其长度必须在指定的范围之间
-
可作用于 Array、Collection、Map,其大小必须在指定的范围之间
-
-
@DecimalMax(value = i)
- 字段必须为数字 (可以为小数),且数值不能超过指定的最大值 i
-
@DecimalMin(value = i)
- 字段必须为数字 (可以为小数),且数值不能超过指定的最小值 i
-
@Positive
- 字段必须为正数,即数值大于 0
-
@PositiveOrZero
- 字段必须为正数或 0,即数值大于等于 0
-
@Negative
- 字段必须为负数,即数值小于 0
-
@NegativeOrZero
- 字段必须为负数或 0,即数值小于等于 0
-
@AssertTrue
- 字段必须为 true
-
@AssertFalse
- 字段必须为 false
-
@Future
-
字段必须为未来的时间 (时间戳)
-
只能作用于 Date
-
-
@FutureOrPresent
-
字段必须为未来的时间或当前的时间 (时间戳)
-
只能作用于 Date
-
-
@Past
-
字段必须为过去的时间 (时间戳)
-
只能作用于 Date
-
-
@PastOrPresent
-
字段必须为过去的时间或当前的时间从 (时间戳)
-
只能作用于 Date
-
-
@Pattern(regexp = “”)
- 字段必须匹配正则表达式
-
@Digits(integer = i, fraction = j)
- 字段必须为数值,且正数部分不能超过 i 位,小数部分不能超过 j 位
二、@NotNull、@NotBlank、@NotEmpty 三者之间的区别
-
@NotNull
- @NotNull 最好理解,只要字段不为 null 即可
-
@NotBlank
- @NotBlank 只能作用于字符串,字段不能为 null 且去掉首尾空格后长度不能为 0
-
@NotEmpty
-
@NotEmpty,字段不能为 null 且不能为空
-
可以作用于字符串,其长度不能为 0
-
可作用于 Array、Collection、Map,其大小不能为 0
-
-
举例说明
String str = null; @NotNull false @NotBlank false @NotEmpty false
String str = ""; @NotNull true @NotBlank false @NotEmpty false
String str = " "; @NotNull true @NotBlank false @NotEmpty true
String str = "null"; @NotNull true @NotBlank true @NotEmpty true