注解校验备忘

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

相关推荐
白鲸开源15 小时前
Apache SeaTunnel Zeta Engine 的 Basic Auth 是怎么工作的?
java·vue.js·github
白鲸开源16 小时前
一文读懂DolphinScheduler插件机制:如何轻松扩展任务类型与数据源
java·架构·github
用户2986985301420 小时前
Java 实现 Word 文档文本查找与高亮标注
java·后端
宇宙之一粟21 小时前
乐企版式文件生成平台
java·后端·python
plainGeekDev21 小时前
MVC 写法 → MVVM
android·java·kotlin
SL_staff1 天前
3周搭完MES系统:JVS低代码+JVS-IoT物联网的实战记录
java·前端·低代码
MacroZheng1 天前
斩获20w star!Claude Code最强插件,AI编程必备!
java·人工智能·后端
唐青枫1 天前
Java Spring WebFlux 实战指南:用 Mono、Flux 和 WebClient 写响应式接口
java·spring
小bo波2 天前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking2 天前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试