目录
2.2、javax.validation.constraints 提供的校验注解
一、依赖
父依赖即为 spring boot
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
二、常用注解说明
2.1、参数校验注解
参数校验主要使用以下两个注解:
a)@Validated 一般用于在 Api 类上标注,那么在 Api 类下的方法参数中,使用 javax.validation.constraints 提供的注解生效.
满足条件时,引发异常:ConstraintViolationException.class
b)@Valid 注解一般有两个作用
第一,在方法的参数中标注对象,那么该对象使用 javax.validation.constraints 提供的注解生效
第二,嵌套参数,例如 UserInfo 类中的成员变量有一个 Avatar 对象,并且 Avatar 的成员变量也被 javax.validation.constraints 提供的注解标记,此时就需要在 Avatar 对象上标注 @Valid 注解,否则 Avatar 对象中的注解不生效.
满足条件时,引发异常:MethodArgumentNotValidException.class
2.2、javax.validation.constraints 提供的校验注解
javax.validation.constraints 提供的注解如下:
这里使用上大家可能有一个误区:UserInfo 中有一个字段 age 不能为空,并且需要小于 100. 此时,有人可能只使用了 @Max(100),以为这里隐含了一个不为空的含义,实则不然,还是因该老老实实如下写法: