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层使用注解校验的最佳实践及使用误区
正确使用方式:
- 基于类或接口均可
- 使用接口校验时,注解放置在接口方法定义上,实现类的方法上可以省略。实现类类级别使用@Validate注解标记。
- 基于Bean使用,静态类诸如此类会失效
- Bean内调用、private方法同样会失效
基于类的实现:此处test会生效,test2失效。
基于接口的实现:接口方法使用@Valid标记,接口实现上可以省略,此处test会生效,test2失效。