注解校验备忘

NotNull

可用于一切包装类型

NotEmpty

用于String类型,表示不为空,并且长度大于0

用于List集合,表示不为空,并且size大于0

NotBlank

只用于字符串,去除两端空格后,长度大于0

Min和Max

包含当前值,适用于int,long,float,double

DecimalMin和 DecimalMax

用于BigDecimal的范围检查

Range

用于byte,short,int,long,BigDecimal,BigInteger,CharSequence,包含当前值

Past和Future

未来时间或将来时间,适用于Date类型

Size

用于元素的长度,适用于String,Array,List,Map,包含min和max的数值

Length

仅用于字符串,用于限定长度,包含边界值

Digits

用于限定float,double,BigDecimal的格式, 包括integer(整数部分长度),fraction(小数部分的长度)

Pattern表示正则匹配

表示正则匹配

Service层使用注解校验的最佳实践及使用误区

正确使用方式:

  1. 基于类或接口均可
  2. 使用接口校验时,注解放置在接口方法定义上,实现类的方法上可以省略。实现类类级别使用@Validate注解标记。
  3. 基于Bean使用,静态类诸如此类会失效
  4. Bean内调用、private方法同样会失效

基于类的实现:此处test会生效,test2失效。

基于接口的实现:接口方法使用@Valid标记,接口实现上可以省略,此处test会生效,test2失效。

相关推荐
Q_19284999063 分钟前
基于Spring Boot的电影网站系统
java·spring boot·后端
Cshaosun7 分钟前
js版本之ES6特性简述【Proxy、Reflect、Iterator、Generator】(五)
开发语言·javascript·es6
凡人的AI工具箱23 分钟前
每天40分玩转Django:Django部署概述
开发语言·数据库·后端·python·django
老鑫安全培训29 分钟前
从安全角度看 SEH 和 VEH
java·网络·安全·网络安全·系统安全·安全威胁分析
罗政31 分钟前
PDF书籍《手写调用链监控APM系统-Java版》第8章 插件与链路的结合:Gson插件实现
java·pdf·linq
SomeB1oody1 小时前
【Rust自学】7.2. 路径(Path)Pt.1:相对路径、绝对路径与pub关键字
开发语言·后端·rust
SomeB1oody1 小时前
【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
开发语言·后端·rust
马船长1 小时前
RCE-PLUS (学习记录)
java·linux·前端
HelloZheQ1 小时前
深入了解 Java 字符串:基础、操作与性能优化
java·python·性能优化
魔法工坊1 小时前
只谈C++11新特性 - 删除函数
java·开发语言·c++