のためのXML設定を無視しますか?SpringBootアプリケーションは、私の質問は以下の通りですHibernateValidator
私のアプリケーションにはvalidation.xmlは必要ありませんが、アプリケーションの起動時にこのファイルを解析しようとしています。 私はHibernateバリのドキュメント(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を拡張しようとしました。私は上記の方法でこの呼び出しを実装できます。次に、このBeanをjava構成クラスを介してロードしようとしました。
残念ながら、いくつかのブートストラップメカニズムは既にSpring提供のBeanを使用しています。私が見つけられる前に、2つのBeanが同時に実行されます。私は、Springの提供Beanが私のものに置き換えられていないので、XML設定が作成したBeanで無視されるというメッセージを見ましたが、この解決策は役に立たなかった。
私も使用できるアプリケーションのプロパティがあるか、いくつかの自動設定は除外されていますが、運は見つかりませんでした。
アイデア? :)
更新: 私はHibernateJPAAutoConfigurationを除外してみましたが、それは助けになりませんでした。
おかげ(= {HibernateJpaAutoConfiguration.class、DataSourceAutoConfiguration.classを}}除外する)。私は、ハイバネートのバリデータが必要なので、依存関係を削除することはオプションではありません。私はHibernateJPAAutoconfigurationを除外してみましたが、残念ながらそれは役に立たなかった。 – slevinn
あなたのアプリケーションのclasspathにvalidation.xmlがある場合、それを削除するだけで、Springブートは自動的にHibernateValidatorをアプリケーションのデフォルトバリデータとして設定します。 –
私はvalidation.xmlを持っていませんが、validatorFactoryがビルドされると、** org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory()**はXML設定を解析しようとします。これは不要なので除外しようとする動作です。 解析中、最初にignoreXmlConfigurationフラグがtrueまたはfalseかどうかがチェックされます。どういうわけか私はこのフラグをfalseに設定することができれば、私の問題を解決することができます。 – slevinn