一、引入依赖
要使用参数校验注解,需要引入以下依赖,注意springboot2.0的web模块已经包含此依赖
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
添加了这个jar包,仅代表可以在项目中引入如@NotNull
等注解,但是它并不会起作用,上面的依赖只是使用了Java规范,并没有提供实现,因此还需要引入hibernate-validator
模块
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>
在springboot项目中直接使用场景启动器即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
二、参数校验
1- 在Controller中使用
由于springweb
对http接口的参数校验进行了封装,在requestbody
中使用参数校验如果校验未通过,则抛出的异常为spring定义的异常org.springframework.web.bind.MethodArgumentNotValidException
。使用 @Valid
和 @Validated
都可,区别在于前者由hibernate-validator提供,后者由spring提供。如果是对象参数则抛出org.springframework.validation.BindException
。