《SpringBoot篇》13.属性校验注解史上最全
【摘要】 整理了好久好久,我愿称之为史上最全校验注解表!!想要啥自己查表!!
这些注解都是搭配@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格式,,也可以通过regexp和flag指定自定义的email格式,类型为String。 | @Email(message = “必须是邮箱”) private String email; |
总结:这一个表想要的全都有。希望对您有帮助,感谢阅读
结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)