天天看点

Java参数校验工具validationJava参数校验工具validation

Java参数校验工具validation

validation可以做以下事情

  • validation可以抛出统一的参数校验异常,方便定位问题
  • 编程简单,只需要注解就能搞定,不需要编写大量的代码

validation提供以下注解:

Java参数校验工具validationJava参数校验工具validation
注解 属性值类型 功能
@AssertFalse Boolean、boolean 被注释的元素必须为false
@AssertTrue Boolean、boolean 被注释的元素必须为true
@DecimalMax(value) BigDecimal、BigInteger、String、byte、short、int、long及对应类型的封装类 被注释的元素必须是一个数字,其值必须大于等于指定的最大值
@DecimalMin(value) BigDecimal、BigInteger、String、byte、short、int、long及对应类型的封装类 被注释的元素必须是一个数字,其值必须小于等于指定的最小值
@Digits(integer, fraction) BigDecimal、BigInteger、String、byte、short、int、long及对应类型的封装类 被注释的元素必须是一个数字,其值必须在可接受范围内
@Email String 被注释的元素必须是一个邮箱格式的字符串
@Future

java.util.Date,

java.util.Calendar;

被注释的元素必须是一个将来的日期
@FutureOrPresent

java.util.Date,

java.util.Calendar;

被注释的元素必须是一个将来或者当前的日期
@Max BigDecimal、BigInteger、byte、short、int、long及对应类型的封装类 被注释的元素必须是一个数字,其值必须大于等于指定的最大值
@Min BigDecimal、BigInteger、byte、short、int、long及对应类型的封装类 被注释的元素必须是一个数字,其值必须小于等于指定的最小值
@Negative 被注释的元素必须是一个负数
@NegativeOrZero 被注释的元素必须是一个负数或0
@NotBlank String 被注解的元素值是否为非null,并且去空格之后的length大于0。与@NotEmpty的区别在于,@NotBlank只能注解字符串,并且忽略结尾空格。
@NotEmpty String、Collection、Map、arrays 被注解的元素值是否为非null或空集合。
@NotNull 任意类型 被注释的元素不能为null
@Null 任意类型 被注释的元素必为null
@Past

java.util.Date,

java.util.Calendar;

被注释的元素必须是一个过去的日期
@PastOrPresent

java.util.Date,

java.util.Calendar;

被注释的元素必须是一个过去或者当前的日期
@Pattern(regexp) String 被注释的元素必须满足指定的正则表达式
@Positive 被注释的元素必须是一个正数
@PositiveOrZero 被注释的元素必须是一个正数或0
@Size(min=, max=) String、Collection、Map、arrays 被注释的元素值大小介于min和max(包含)之间。
public class ValidateVo {
    @NotBlank(message = "没有名字")
    private String name;
    @Email(message = "邮箱格式不对")
    private String email;
    @Size(max=16, min=6, message = "密码位数不对")
    private String password;
    @Positive(message = "年龄不对")
    private int age;
}