《SpringBoot篇》13.属性校验注解史上最全

举报
陈老老老板 发表于 2022/10/23 17:43:55 2022/10/23
【摘要】 整理了好久好久,我愿称之为史上最全校验注解表!!想要啥自己查表!! 这些注解都是搭配@Valid与@Validated使用,可以看我之前的博客
陈老老老板
说明:学习一些新的技术栈,边学习边总结,各位一起加油。需要注意的地方都标红了,还有资源的分享. 一起加油。

说明:
整理了好久好久,我愿称之为史上最全校验注解表!!想要啥自己查表!!
这些注解都是搭配@Valid与@Validated使用,可以看我之前的博客:
@Valid与@Validated区别与用法

分类 限制 说明 案例
空和非空检查 @Null 限制只能为空 @Null(message = “用户名必须为null”)
private String username;
@NotNull 限制不能为空 @NotNull(message = “用户名必须不为null”)
private String username;
@NotEmpty 验证注解的元素值不能为null且不能为空(字符串长度不为0、集合大小不为0) @NotEmpty(message = “必须不为null且不为空”)
private String username;
@NotBlank 验证注解的元素值不能为空(不为null,去除首位空格后长度为0),不同于@NotEmpty,@NotBlank 只应用于字符串并在比较时会去除字符串的空格。 @NotBlank(message = “必须不为空”)
private String username;
长度检查 @Size(max,min) 限制字符长度在min与max之间,并且类型为String,Array,List,Map。 @Size(max = 11, min = 7, message = “长度必须大于等于7或小于等于11”)
private String mobile;
@Length 限制元素值长度在min和max区间内 ,并且类型为String。 @Length(max = 11, min = 7, message = “长度必须大于等于7或小于等于11”)
private String mobile;
Boolean值检查 @AssertFalse 限制必须为False,并且类型为boolean。 @AssertFalse(message = “必须为false”)
private boolean status;
@AssertTrue 限制必须为True,并且类型为boolean。 @AssertTrue(message = “必须为true”)
private boolean status;
日期检查 @Past 限制时间是当前时间之前,并且类型为java.util.Date。 @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@Past(message = “必须为过去的时间”)
private Date time;
@Future 限制时间为当前时间之后,并且类型为java.util.Date,并且类型为java.util.Date。 @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@Future(message = “必须为未来的时间”)
private Date time;
@FutureOrPresent 限制时间为当前时间或当前时间之后,并且类型为java.util.Date。 @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@FutureOrPresent(message = “时间为当前时间或当前时间之后”)
private Date time;
@PastOrPresent 限制时间为当前时间或当前时间之前,并且类型为java.util.Date。 @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@PastOrPresent(message = “时间为当前时间或当前时间之前”)
private Date time;
数值检查 @Max(value) 限制必须是一个不大于指定值的数 @Max(value = 18, message = “必须小于等于18”)
private int age;
@Min(value) 限制必须是一个不小于指定值的数,并且类型为int,long,float,double。 @Min(value = 18, message = “必须大于等于18”)
private int age;
@DecimalMax(value) 限制必须是一个不大于指定值的数,并且类型为int,long,float,double。 @DecimalMax(value = “300”, message = “必须大于等于300”)
private BigDecimal height;
@DecimalMin(value) 限制必须是一个不小于指定值的数,并且类型为int,long,float,double。 @DecimalMin(value = “150”, message = “必须大于等于150”)
private BigDecimal height;
@Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过Fraction ,并且类型为float,double,BigDecimal。 @Digits(integer=3,fraction = 2,message = “整数位上限为3位,小数位上限为2位”)
private BigDecimal height;
@Negative 限制必须为负整数,并且类型为float,double,BigDecimal。 @Negative( message = “必须为负整数”)
private BigDecimal height;
@NegativeOrZero 限制必须为负整数或零,并且类型为float,double,BigDecimal。 @NegativeOrZero( message = “必须为负整数或零”)
private BigDecimal height;
@Positive 限制必须为正整数,并且类型为float,double,BigDecimal。 @Positive( message = “必须为正整数”)
private BigDecimal height;
@PositiveOrZero 限制必须为正整数或零,并且类型为float,double,BigDecimal。 @PositiveOrZero( message = “必须为正整数或零”)
private BigDecimal height;
@Range 元素值在最小值和最大值之间,并且类型为BigDecimal,BigInteger,CharSequence,byte,short,int,long。 @Range(max = 80, min = 18, message = “必须大于等于18或小于等于80”)
private int age;
其他检查 @Pattern(value) 限制必须符合指定的正则表达式,并且类型为String。 @Pattern(regexp = “\d{11}”,message = “必须为数字,并且长度为11”)
private String mobile;
@Email 限制必须为Email格式,,也可以通过regexp和flag指定自定义的email格式,类型为String。 @Email(message = “必须是邮箱”)
private String email;

总结:这一个表想要的全都有。希望对您有帮助,感谢阅读

结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。