SpirngBoot 中JSR数据校验的注解分类与如何使用

JSR的全称是Java Specification Requests(Java 规范提案),是指向JCP ( Java Community Process )提出新增一个标准化技术规范的正式请求。

 Spring Validation 是对 hibernate validation 的二次封装,用于支持 spring mvc 参数自动校验。

数据校验注解分类

1.值校验

@Null(message = "必须为null")    // 被注解的元素必须不为null

@NotNull(message = "必须不为null") // 校验注解的元素值不为空(不为null、去除首位空格后长度为0),类型为String

@NotBlank(message = "必须不为空")

// 校验注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0),类型为CharSequence、 Collection、Map、Array

@NotEmpty(message = "必须不为null且不为空")

// 被注解的元素必须为true,并且类型为boolean

@AssertTrue(message = "必须为true")

// 被注解的元素必须为false,并且类型为boolean

@AssertFalse(message = "必须为false")

2.范围校验

@Min(value = 18, message = "必须大于等于18")

// 被注解的元素其值必须大于等于最小值,并且类型为int,long,float,double

@Max(value = 18, message = "必须小于等于18")

// 被注解的元素其值必须小于等于最小值,并且类型为int,long,float,double

@DecimalMin(value = "150", message = "必须大于等于150")

// 校验注解的元素值大于等于@DecimalMin指定的value值,并且类型为BigDecimal

@DecimalMax(value = "300", message = "必须大于等于300")

// 校验注解的元素值小于等于@DecimalMax指定的value值 ,并且类型为BigDecimal

CharSequence,byte,short,int,long。

@Range(max = 80, min = 18, message = "必须大于等于18或小于等于80")

// 校验注解的元素值在最小值和最大值之间,并且类型为BigDecimal,BigInteger,

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@Past(message = "必须为过去的时间")

// 被注解的元素必须为过去的一个时间,并且类型为java.util.Date(以上两注解一起使用)

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Future(message = "必须为未来的时

间")

// 被注解的元素必须为未来的一个时间,并且类型为java.util.Date

3.长度校验

@Size(max = 11, min = 7, message = "长度必须大于等于7或小于等于11")

// 被注解的元素的长度必须在指定范围内,并且类型为String,Array,List,Map

@Length(max = 11, min = 7, message = "长度必须大于等于7或小于等于11")

// 校验注解的元素值长度在min和max区间内 ,并且类型为String

4.格式校验

@Digits(integer=3,fraction = 2,message = "整数位上限为3位,小数位上限为2位")

// 校验注解的元素值的整数位数和小数位数上限 ,并且类型为float,double,BigDecimal。

@Pattern(regexp = "\\d{11}",message = "必须为数字,并且长度为11")

// 被注解的元素必须符合指定的正则表达式,并且类型为String

@Email(message = "必须是邮箱")

// 校验注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式,类型为String

你可能感兴趣的:(java,开发语言)