SpringBoot -- 05 -- Validation校验注解解析

在日常与页面的联调中,我们会发现,尽管前端已经对请求参数做了校验,但有时候后端程序还是会报错,因此我们可以在后端再做一次校验,以确保数据的正确性,此时校验注解就派上了用场


一、注解

  • @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 位

PS:这里我们重点来看下 @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

二、参考资料

  • springboot 使用校验框架validation校验

  • Spring 中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?

你可能感兴趣的:(springboot,SpringBoot)