注解校验备忘

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

相关推荐
一条大祥脚1 分钟前
Cuda Rudece算子实现(附4090/h100测试)
java·数据结构·算法
裤裤兔4 分钟前
Python打印输出换行
开发语言·python
一水鉴天6 分钟前
整体设计 定稿 之24+ dashboard.html 增加三层次动态记录体系仪表盘 之2 程序 (Q208 之2)
开发语言·前端·javascript
啦哈拉哈6 分钟前
【Python】知识点零碎学习3
开发语言·python·学习
嗑瓜子儿溜茶水儿8 分钟前
docker 部署 kkfileview ; arm64; ky10;
java·docker
mengzhi啊11 分钟前
Qt自绘制动态字体,模糊的,毛茸茸的fuzzy。
开发语言·qt
识途老码12 分钟前
python装饰器
开发语言·python
CoderYanger13 分钟前
贪心算法:1.柠檬水找零
java·算法·leetcode·贪心算法·1024程序员节
JIngJaneIL13 分钟前
基于Java饮食营养管理信息平台系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
fresh hacker14 分钟前
【Python数据分析】速通NumPy
开发语言·python·数据挖掘·数据分析·numpy