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个人博客!





