注解说明: 根据使用频次排序
验证注解 | 验证的数据类型 | 说明 |
---|---|---|
@NotNull | 任意类型 | 验证注解的元素值不是null |
@Size(min=下限,max=上限) | 字符串,Collection,Map,数组等 | 验证注解的元素值在min和max指定区间内,如字符长度,集合大小 |
@NotBlank | 字符串 | 验证注解的元素值不为空(不为null,trim后长度不为0), 只能注解在字符串上 |
@Length(min=下限,max=上限) | 字符串 | 验证注解的元素值在最大值和最小值之间 |
@NotEmpty | 字符串, Collection,Map,数组 | 验证注解的元素值不为null且不为空(字符串长度不为0,集合大小不为0) |
@Pattern(regexp=正则表达式,flag=标志的模式) | String,任何CharSequence子类型 | 验证注解的元素值和正则表达式匹配 |
@Valid | 任何非原子类型 | 指定递归验证关联的对象 |
@Null | 任意类型 | 验证注解的元素值是null |
@AssertFalse | Boolean,boolean | 验证注解的元素值是false |
@AssertTrue | Boolean,boolean | 验证注解的元素值是true |
@Min(Value=值) | 存储是数字的类型 | 验证注解的元素值是大于等于指定的Vlaue值 |
@Max(Value=值) | 存储是数字的类型 | 验证注解的元素值是小于等于指定的Vlaue值 |
@DecimalMax(Value=值) | 存储是数字的类型 | 验证注解的元素值是小于等于指定的Vlaue值 |
@Digits(integer=整数位数,fraction=小数位数) | 存储是数字的类型 | 验证注解的元素值是整数位数和小数位数上限 |
@Range(min=下限,max=上限) | BigDecimal,BigInteter,CharSequence,byte,short,int,long等原子类型和包装类型 | 验证注解的元素值在最大值和最小值之间 |
1.@NotNull
不能为 null,但可以为 empty,一般用在 Integer 类型的基本数据类型的非空校验上,而且被其标注的字段可以使用 @size、@Max、@Min 对字段数值进行大小的控制
2.@NotEmpty
不能为 null,且长度必须大于 0,一般用在集合类上或者数组上
3.@NotBlank
只能作用在接收的 String 类型上,注意是只能,不能为 null,而且调用 trim() 后,长度必须大于 0即:必须有实际字符
注意在使用 @NotBlank 等注解时,一定要和 @valid 一起使用,否则 @NotBlank 不起作用。
- 一个 BigDecimal 的字段使用字段校验标签应该为 @NotNull。
- 在使用 @Length 一般用在 String 类型上可对字段数值进行最大长度限制的控制。
- 在使用 @Range 一般用在 Integer 类型上可对字段数值进行大小范围的控制。
附 @Valid
有时参数对象中还包含其他参数对象,如果要验证包含的对象里的参数,就需要使用@Valid注解包含的对象,如下:
/**
* 拓扑关系集合
**/
@ApiModelProperty(value = "拓扑关系集合",required = true)
@NotEmpty(message = "拓扑关系集合不能为空")
@Valid
private List<GraphEdgeParam> edges;
@Data
@ApiModel(value = "GraphEdgeParam", description = "拓扑关系入参")
public class GraphEdgeParam implements Serializable {
@ApiModelProperty(value = "来源节点")
@NotNull(message = "来源节点不能为空")
private String source;
@ApiModelProperty(value = "指向节点")
@NotNull(message = "指向节点不能为空")
private String dest;
}