Spring Boot开启参数校验,整合hibernate-validator
;
Running with Spring Boot v2.1.15.RELEASE, Spring v5.1.16.RELEASE
配置
import org.hibernate.validator.HibernateValidator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
import javax.validation.Validation;
import javax.validation.Validator;
@Configuration
public class ValidatorConfig {
@Bean
public static Validator validator() {
return Validation
.byProvider(HibernateValidator.class)
.configure()
.failFast(true)
.buildValidatorFactory()
.getValidator();
}
@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
MethodValidationPostProcessor processor = new MethodValidationPostProcessor();
processor.setValidator(validator());
return processor;
}
}
引入依赖
<hibernate-validator.version>6.0.20.Final</hibernate-validator.version>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate-validator.version}</version>
</dependency>
使用方式
public void login(@Valid UserLoginVo vo) {
// TODO:
}
其他
如果报错:提示找不到javax/el/ELManager
,引入下面的包;因为有些项目是以provided
形式引入的。
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>9.0.36</version>
</dependency>