springboot@Validation,@Pattern
@Validation基本使用
@Validation主要功能是可以在controller层开启数据校验功能
@validated如果要开启方法验证。注解应该打在类上,而不是方法参数上。
@Validation配合@Pattern使用
下文register方法形参中的@Pattern(regexp = “^\S{5,16}$”) String username表示当访问/register路径携带的username/password参数小于5或16是会报异常,该方法中之所以没去捕获异常是因为我们已经利用@ExceptionHandler,@RestControllerAdvice注解统一处理了异常
如果将@Validated删除@Pattern将没有作用
1 |
|
其他的注解
限制 | 说明 |
---|---|
@Null | 限制只能为null |
@NotNull | 限制必须不为null |
@AssertFalse | 限制必须为false |
@AssertTrue | 限制必须为true |
@DecimalMax(value) | 限制必须为一个不大于指定值的数字 |
@DecimalMin(value) | 限制必须为一个不小于指定值的数字 |
@Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
@Future | 限制必须是一个将来的日期 |
@Max(value) | 限制必须为一个不大于指定值的数字 |
@Min(value) | 限制必须为一个不小于指定值的数字 |
@Past | 限制必须是一个过去的日期 |
@Pattern(value) | 限制必须符合指定的正则表达式 |
@Size(max,min) | 限制字符长度必须在min到max之间 |
@Past | 验证注解的元素值(日期类型)比当前时间早 |
@NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
@NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 |
验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式 |
分组校验
把校验项进行归类分组,在完成不同功能的时候,校验指定组中的校验项
1.定义校验
2.定义校验项时指定归属的分组
3.校验时指定要校验的分组
定义校验
在实体类中编写两个接口,这两个接口就好像标签一样,标记出两个校验
1 | public interface Add extends Default {} |
指定归属
1 | // ... |
校验时指定分组
1 | //... |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 self个人博客!