我的问题如下:
是否可以忽略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/