> 文档中心 > @Validated注解对应类型(一)

@Validated注解对应类型(一)

背景

今天在entity的属性上,添加@NotEmpty属性的时候失败了。

@NotEmpty这个很好理解,就是非空校验。

查看了下,发现说是因为字段类型是Integer,不支持。

但是这玩意放在属性上面,在运行时才去检查当前类型。

这也确实有点扯蛋了。

所以就弄点时间简单看下。

@Validated简介

@Validated是Spring Validator校验机制使用的。

作用域一般就是解放我们原来对入参的校验操作,免得我们在代码里面写

所以就花点时间,把源码都看了下,发现还是比较全,都写在一个包里。

注解说明

@AssertFalse: false断言

注解元素必须为false。

支持boolean和Boolean。接受null值

@Constraint(validatedBy = { })public @interface AssertFalse {String message() default "{javax.validation.constraints.AssertFalse.message}";Class[] groups() default { };Class[] payload() default { };

@AssertTrue:true断言

注解元素必须为true。

支持boolean和Boolean。接受null值

@Constraint(validatedBy = { })public @interface AssertTrue {String message() default "{javax.validation.constraints.AssertTrue.message}";Class[] groups() default { };Class[] payload() default { };

@DecimaMax:最大数值

@Constraint(validatedBy = { })public @interface DecimalMax {String message() default "{javax.validation.constraints.DecimalMax.message}";Class[] groups() default { };Class[] payload() default { };

元素必须是一个数值,其值必须小于或等于指定的最大值

支持以下类型值:

BigDecimal
BigInteger
CharSequence
byte, short, int, long以及对应的包装类型

注意,由于可能存在舍入错误问题,double和float不受支持

@DecimalMin:最小数值验证

和@DecimalMax相反,不多做解释。

@Digits :数字格式

主要用于数字格式进度判断,例如金额

元素必须是一个数值,其值必须是一个可接受范围内的数字

支持以下类型值:

BigDecimal
BigInteger
CharSequence
byte, short, int, long以及对应的包装类型

@Constraint(validatedBy = { })public @interface Digits {String message() default "{javax.validation.constraints.Digits.message}";Class[] groups() default { };Class[] payload() default { };/** * @return maximum number of integral digits accepted for this number */int integer();/** * @return maximum number of fractional digits accepted for this number */int fraction();

使用格式:@Digits(integer=,fraction=) 

integer:最大整数位数  fractional:最大小数位数

@Email:邮件格式

邮件格式校验。

字符串必须是格式正确的电子邮件地。接受CharSequence类型

public @interface Email {String message() default "{javax.validation.constraints.Email.message}";Class[] groups() default { };Class[] payload() default { };/** * @return an additional regular expression the annotated element must match. The default * is any string ('.*') */String regexp() default ".*";/** * @return used in combination with {@link #regexp()} in order to specify a regular * expression option */Pattern.Flag[] flags() default { };

@Future

检查注释日期是否大于当前时间

public @interface Future {String message() default "{javax.validation.constraints.Future.message}";Class[] groups() default { };Class[] payload() default { };

支持以下类型

java.util.Date
java.util.Calendar
java.time.Instant
java.time.LocalDate
java.time.LocalDateTime
java.time.LocalTime
java.time.MonthDay
java.time.OffsetDateTime
java.time.OffsetTime
java.time.Year
java.time.YearMonth
java.time.ZonedDateTime
java.time.chrono.HijrahDate
java.time.chrono.JapaneseDate
java.time.chrono.MinguoDate
java.time.chrono.ThaiBuddhistDate

@FutureOrPresent

注释日期是否大于等于当前时间。和上面类似。

@Max

值是否小于等于指定值

@Constraint(validatedBy = { })public @interface Max {String message() default "{javax.validation.constraints.Max.message}";Class[] groups() default { };Class[] payload() default { };...

支持类型:

BigDecimal
BigInteger
byte, short, int, long,和原始类型的相应包装类型

@Min

和上面的@Max相反

 

钢筋混凝土切割网