我的问题如下:
是否可以忽略HibernateValidator的XML配置,即在SpringBoot应用程序中排除validation.xml解析?
我的应用程序中不需要validation.xml,但我发现当应用程序启动时,它会尝试解析此文件。 我在Hibernate Validator文档(https://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-xmlconfiguration.html)中找到了这个:
甚至可以通过Configuration.ignoreXmlConfiguration()完全忽略XML配置。
我看到的是,在 LocalValidatorFactoryBean.afterPropertiesSet() 方法中,为验证程序创建了配置。此bean有一个名为 postProcessConfiguration(配置配置) 的方法,该方法在从配置构建validatorFactory之前调用。 它似乎是调用ignoreXmlConfiguration()方法的理想位置,文档建议的内容。
我试图扩展这个LocalValidatorFactoryBean,以便我可以在上面提到的方法中实现这个调用。然后我尝试通过java配置类加载这个bean。
不幸的是,一些引导机制已经使用Spring提供的bean,在它找到我之前,两个bean同时运行。我看到消息说用我创建的bean忽略了XML配置,但是,这个解决方案没有帮助,因为Spring提供的bean不能替换为我的。
我还试图找出是否有我可以使用的应用程序属性,或者排除某些自动配置,但没有运气。
有什么想法吗? :)
更新 我尝试排除了HibernateJPAAutoConfiguration,它没有帮助。
答案 0 :(得分:1)
如果你不需要hibernate验证器,那么从pom.xml文件中删除所有与hibernate验证器相关的依赖项。 您还可以尝试在Application类上添加@EnableAutoConfiguration(excludes =)注释,以排除默认验证配置。
喜欢@SpringBootApplication(exclude = {HibernateJpaAutoConfiguration.class,DataSourceAutoConfiguration.class}})