注解校验备忘

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失效。

相关推荐
c***937717 分钟前
SpringBoot实现异步调用的方法
java·spring boot·spring
勇闯逆流河19 分钟前
【C++】C++11(下)
开发语言·c++
青衫码上行23 分钟前
【Java Web学习 | 第15篇】jQuery(万字长文警告)
java·开发语言·前端·学习·jquery
凯子坚持 c1 小时前
Docker 容器实战:从镜像管理到私有仓库构建深度解析
java·docker·eureka
q***01652 小时前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
f***68604 小时前
【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)
java·spring boot·后端
likuolei5 小时前
Eclipse 快捷键
java·ide·eclipse
胡萝卜3.06 小时前
掌握C++ map:高效键值对操作指南
开发语言·数据结构·c++·人工智能·map
电子_咸鱼6 小时前
【STL string 全解析:接口详解、测试实战与模拟实现】
开发语言·c++·vscode·python·算法·leetcode
哈茶真的c7 小时前
【书籍心得】左耳听风:传奇程序员练级攻略
java·c语言·python·go