首先我们只使用java官方的 javax.validation.constraints ,足以使用了,不使用spring boot 自身的,自身的与官方的一致,可能会有扩展,但是还得引入包,麻烦,只用官方的就行了。
用java官方的标准 ,就是所有的参数校验注解都在这个包下:
以下是具体说明:
注解 | 作用类型 | 解释 |
null是否 能通过验证 |
@AssertFalse | Boolean、boolean | 该字段值为false时,验证才能通过 | YES |
@AssertTrue | Boolean、boolean | 该字段值为true时,验证才能通过 | YES |
@DecimalMax | 数字类型(原子和包装) | 验证小数的最大值
@DecimalMax(value = "12.35") private double money;
|
YES |
@DecimalMin | 数字类型(原子和包装) | 验证小数的最小值 | YES |
@Digits | 数字类型(原子和包装) | 验证数字的整数位和小数位的位数是否超过指定的长度
@Digits(integer = 2, fraction = 2) private double money;
|
YES |
String | 该字段为Email格式,才能通过 | YES | |
@Future | 时期、时间 | 验证日期是否在当前时间之后,否则无法通过校验
@Future private Date date;
|
YES |
@FutureOrPresent | 时期、时间 | 时间在当前时间之后 或者等于此时 | YES |
@Max | 数字类型(原子和包装) |
//该字段的最大值为18,否则无法通过验证 @Max(value = 18) private Integer age;
|
YES |
@Min | 数字类型(原子和包装) | 同上,不能低于某个值否则无法通过验证 | YES |
@Negative | 数字<0 | YES | |
@NegativeOrZero | 数字=<0 | YES | |
@NotBlank | String 该注解用来判断字符串或者字符,只用在String上面 |
字符串不能为null,字符串trim()后也不能等于“” |
NO |
@NotEmpty | String、集合、数组、Map、链表List |
不能为null,不能是空字符,集合、数组、map等size()不能为0;字符串trim()后可以等于“” |
NO |
@NotNull | 任何类型 | 使用该注解的字段的值不能为null,否则验证无法通过 | NO |
@Null | 修饰的字段在验证时必须是null,否则验证无法通过 | YES | |
@Past | 时间、日期 | 验证日期是否在当前时间之前,否则无法通过校验,必须是一个过去的时间或日期 | YES |
@PastOrPresent | 时间、日期 | 验证日期是否在当前时间之前或等于当前时间 | YES |
@Pattern | 用于验证字段是否与给定的正则相匹配
@Pattern(regexp = "正则") private String name;
|
YES | |
@Positive | 数字>0 | YES | |
@PositiveOrZero | 数字>=0 | YES | |
@Size | 字符串String、集合Set、数组Array、Map,List |
修饰的字段长度不能超过5或者低于1 @Size(min = 1, max = 5) private String name; 集合、数组、map等的size()值必须在指定范围内 //只能一个 @Size(min = 1, max = 1) private List<String> names;
|
YES |