注解校验备忘

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

相关推荐
Jesse_EC几秒前
我给消息推送加了 Publisher Confirm,然后亲手引入了一个竞态
java
名字还没想好☜几秒前
Go 1.23 range-over-func 迭代器实战:自定义可迭代类型、提前退出与惰性求值
开发语言·后端·golang·go·迭代器
S3rein1 分钟前
JAVA多线程手撕
java·多线程
用户8181870627463 分钟前
第7章 死锁排查实录:jstack定位死锁的完整流程
java·后端
喵同志不止步于码农22 分钟前
Java Caffeine 快速入门
java·开发语言·后端·并发·缓存一致性
Java成神之路-23 分钟前
Java 并发灵魂拷问:notify/signal 唤醒顺序是规范还是实现?
java
Java牛马36 分钟前
Caffeine 缓存及其应用相关总结
java·redis·缓存·caffeine·数据一致性·本地缓存
2kπ40 分钟前
QT开发笔记
开发语言·笔记·qt
青 春 记 忆44 分钟前
零基础入门Python15|关联、聚合、索引与事务:订单数据库
开发语言·python·后端开发
江屿风1 小时前
【STM32基础篇】【嵌入式生态问题及历史追溯】流食般投喂
大数据·开发语言·人工智能·笔记·stm32·嵌入式硬件