2016-07-26 6 views
1

のための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を除外してみましたが、それは助けになりませんでした。

答えて

1

hibernateバリデータが必要ない場合は、pom.xmlファイルからhibernateバリデータに関連するすべての依存関係を削除してください。 @EnableAutoConfiguration(excludes =)アノテーションをApplicationクラスに追加して、デフォルトの検証設定を除外することもできます。 @SpringBootApplication等

回答の

+0

おかげ(= {HibernateJpaAutoConfiguration.class、DataSourceAutoConfiguration.classを}}除外する)。私は、ハイバネートのバリデータが必要なので、依存関係を削除することはオプションではありません。私はHibernateJPAAutoconfigurationを除外してみましたが、残念ながらそれは役に立たなかった。 – slevinn

+0

あなたのアプリケーションのclasspathにvalidation.xmlがある場合、それを削除するだけで、Springブートは自動的にHibernateValidatorをアプリケーションのデフォルトバリデータとして設定します。 –

+0

私はvalidation.xmlを持っていませんが、validatorFactoryがビルドされると、** org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory()**はXML設定を解析しようとします。これは不要なので除外しようとする動作です。 解析中、最初にignoreXmlConfigurationフラグがtrueまたはfalseかどうかがチェックされます。どういうわけか私はこのフラグをfalseに設定することができれば、私の問題を解決することができます。 – slevinn

関連する問題