注解校验备忘

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

相关推荐
HZero.chen17 分钟前
Java 匿名类简介
java·匿名类
用户31268748772019 分钟前
Java 泛型擦除到底擦掉了什么?类型安全与桥接方法深度拆解
java
SamChan9024 分钟前
PDF翻译后的格式完整性校验:用Python自动比对译文与原文档的表格与段落结构
开发语言·python·ai·pdf·机器翻译
暖焰核心26 分钟前
继承全解——继承、默认成员函数、切片、隐藏与虚继承
java·前端·javascript
君顾135 分钟前
外卖CPS系统开发实战指南:从架构设计到部署全流程解析
java·开发语言·外卖
是立不是利1 小时前
前端交互基石:深入剖析JavaScript三级联动背后的设计哲学
开发语言·前端·javascript
奇牙coding1231 小时前
GPT-5.5 升级 GPT-5.6 接入指南:流式调用配置与常见问题
java·网络·gpt·ai
老刘的望远镜1 小时前
AgentScope Java 从零(03):Agent 的记性默认全开,我在第 50 轮翻了车
java·开发语言·javascript
Littlehero_1211 小时前
QT自定义控件之电气接线图(源码开源)
开发语言·qt