javax.validation.NoProviderFoundException:无法创建配置,因为找不到 Bean 验证提供程序
Posted
技术标签:
【中文标题】javax.validation.NoProviderFoundException:无法创建配置,因为找不到 Bean 验证提供程序【英文标题】:javax.validation.NoProviderFoundException: Unable to create a Configuration, because no Bean Validation provider could be found 【发布时间】:2021-12-29 19:59:07 【问题描述】:即使添加到类路径中,也找不到 Hibernate Bean Validator。
我在 Spring Boot 中有一个简单的 Web 应用程序。我正在尝试使用这个简单的函数来测试 Hibernate Validator:
public void validateUser(User user)
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<User>> violations = validator.validate(user);
但它会引发异常: 。将像 Hibernate Validator (RI) 这样的提供程序添加到您的类路径中。
我尝试使用不同的库,但它们都不起作用。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
我正在使用 Java 17。
【问题讨论】:
***.com/a/66348372/11002 可能会有所帮助 无法复制。它应该只需要spring-boot-starter-validation
。
【参考方案1】:
对于 Spring Boot 项目,您需要添加 spring-boot-starter-validation
启动依赖项。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
所有Spring Boot启动的项目都可以在官方文档中找到:spring.io
将新依赖项添加到 pom.xml
文件后,我建议运行 mwnv clean package
(或 mvn clean package
)来获取依赖项并构建一个干净的项目。
此外,对于引导/生成 Spring Boot 项目,您可能需要使用 Spring Initializr。
【讨论】:
以上是关于javax.validation.NoProviderFoundException:无法创建配置,因为找不到 Bean 验证提供程序的主要内容,如果未能解决你的问题,请参考以下文章