Java Bean Validation

JSR303 是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面,就可以在需要校验的时候进行校验了。校验框架注解如下:

注解 解释
@Null 被注释的元素必须为null
@NotNull 被注释的元素必须不为null
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,且值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,且值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,且值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,且值必须小于等于指定的最大值
@Size(max, min) 被注释的元素大小必须在指定的范围内
@Digits(integer, fraction) 被注释的元素必须是一个数字,且其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern 被注释的元素必须符合指定的正则表达式

Hibernate validator 在JSR303的基础上对校验注解进行了扩展,扩展注解如下:

注解 解释
@Email 被注释的元素必须是电子邮箱地址
@length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串必须非空
@Range 被注释的元素必须在适合的范围内

Spring validtor 同样扩展了jsr303,并实现了方法参数和返回值的校验
Spring 提供了MethodValidationPostProcessor类,用于对方法的校验

使用:
pom.xml添加依赖

<!--jsr 303-->
<dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>1.1.0.Final</version>
</dependency>
<!-- hibernate validator-->
<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-validator</artifactId>
   <version>5.2.0.Final</version>
</dependency>

@NotEmpty、@NotBlank、@NotNull 区别和使用

  1. @NotNull
    适用于基本数据类型(Integer,Long,Double等等),当 @NotNull 注解被使用在 String 类型的数据上,则表示该数据不能为 Null(但是可以为 Empty)
  2. @NotBlank
    适用于 String 类型的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后 size > 0
  3. @NotEmpty
    适用于 String、Collection集合、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null 或者 长度为 0

你可能感兴趣的:(Java基础,java,spring,mybatis)