java - SpringBoot应用程序忽略HibernateValidator的xml配置

标签 java spring-boot hibernate-validator

我的问题如下:

是否可以忽略HibernateValidator的XML配置,即在SpringBoot应用程序中排除validation.xml解析?

我的应用程序中不需要validation.xml,但我看到当应用程序启动时,它会尝试解析此文件。 我在 Hibernate Validator 文档 ( https://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-xmlconfiguration.html ) 中找到了这个:

It is even possible to ignore the XML configuration completely via Configuration.ignoreXmlConfiguration().

我看到的是,在 LocalValidatorFactoryBean.afterPropertiesSet() 方法中,为 validator 创建了配置。该 bean 有一个名为 postProcessConfiguration(Configuration configuration) 的方法,该方法在根据配置构建 validatorFactory 之前调用。 正如文档所建议的那样,这似乎是调用ignoreXmlConfiguration()方法的理想位置。

我尝试扩展这个LocalValidatorFactoryBean,以便我可以在上述方法中实现此调用。然后我尝试通过java配置类加载这个bean。

不幸的是,一些引导机制已经使用了Spring提供的bean,在找到我的bean之前,这两个bean同时运行。我看到消息说 XML 配置被我创建的 bean 忽略,但是,这个解决方案没有帮助,因为 Spring 提供的 bean 没有被我的 bean 替换。

我还尝试查找是否有任何可以使用的应用程序属性,或排除某些自动配置,但没有成功。

有什么想法吗? :)

更新: 我尝试排除 HibernateJPAAutoConfiguration,但没有帮助。

最佳答案

如果您不需要 hibernate validator ,请从 pom.xml 文件中删除与 hibernate validator 相关的所有依赖项。 您还可以尝试在 Application 类上添加 @EnableAutoConfiguration(excludes=) 注释以排除默认验证配置。

像@SpringBootApplication(exclude = {HibernateJpaAutoConfiguration.class,DataSourceAutoConfiguration.class} })

关于java - SpringBoot应用程序忽略HibernateValidator的xml配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38593555/

相关文章:

java - 如何从 ConstraintViolationException 获取查询参数名称

java - hibernate validator 。如何使用@Valid 注解?

java - 使用 java 8 编写的 DAO 类方法的 Mockito 测试用例

java - Tomcat session 超时 web.xml

java - 无法将 java.lang.String 类型的值 'tags' ~@ignored"' 的配置条目 '"分配给 java.util.List 类型的属性 -> [帮助 1]

Java:处理以下字符串的正确正则表达式?

java - 如何组合两个异步 Web 客户端调用,假设一个调用遇到一些异常

java - 无法获得特定国家/地区的本地化响应

spring-boot - thymeleaf 与 thymeleaf-spring4 依赖关系

java - 如何在 Spring MVC 中使用自定义日期属性编辑器验证日期