に基づいてDataSourceAutoConfigurationを有効 春ブート・スターター・データ-JPA
は条件付きで春のブートを有効にする方法はありますEnvプロパティ/システムプロパティが存在する場合にのみ、datasourceautoconfigurationクラスに基づいています。春ブーツconditonally私は私のプロジェクトでは、以下の依存関係を持っているし、私のメインクラスで@SpringBootApplicationを持つシステムプロパティ
おかげ
に基づいてDataSourceAutoConfigurationを有効 春ブート・スターター・データ-JPA
は条件付きで春のブートを有効にする方法はありますEnvプロパティ/システムプロパティが存在する場合にのみ、datasourceautoconfigurationクラスに基づいています。春ブーツconditonally私は私のプロジェクトでは、以下の依存関係を持っているし、私のメインクラスで@SpringBootApplicationを持つシステムプロパティ
おかげ
あなたがfalseにプロパティ「spring.datasource.initialize」を定義した場合、初期化ロジックがスキップされることが表示されます。 DataSourcePropertiesは、「初期化」という名前の属性を持っており、これがDataSourceInitializerのデフォルトの実装で参照されて表示されていることを
あなたはDataSourceAutoConfiguration定義を見れば、それは構成プロパティにロードします...
...
私は、データソースの初期化をスキップするプロパティを使用することができるというようことをお読みください。
希望これは注釈@ConditionalOnProperty
でDataSourceAutoConfiguration
を拡張について
どのように役立ちますか?元のDataSourceAutoConfiguration
を春から除外して、独自の実装をアプリケーションの一部にすることができます。このような
@Configuration
@ConditiaonalOnProperty(value = "datasource.property.anything",matccchIfMissing==true)
public class DataSourceInit extends DataSourceAutoConfiguartion {
}
、などとして、Springアプリケーションクラスのexclude
を追加:あなたはspring.autoconfigure.exclude
プロパティを使用して自動構成を除外することができ
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
。あなたは、システムのプロパティを使用して、そのプロパティを設定できます。
-Dspring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
ます。またSPRING_AUTOCONFIGURE_EXCLUDE
環境変数を使用して、それを設定することができます。
こんにちはジェミニ、ありがとう。 datasource.property.anythingがtrueに設定されているときにアプリケーションを正常に起動できますが、オフにした場合(falseに設定した場合)、HibernateJpaAutoConfigurationクラスをロードすると失敗しています。 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class、HibernateJpaAutoConfiguration.class})を追加しました。そして今、それはfalseに設定されているときには動作していますが、trueに設定すると失敗します。 –
'DataSourceAutoConfiguration'を有効にしたくないときに、それらをすべて除外しても問題ありません。あなたの 'datasource.property.anything'がfalseに設定されていた場合、何が失敗になるでしょうか?私の経験上、 '@ ConditionalOnProperty'は' HibernateJpaAutoConfiguration'クラスをロードする必要があるかどうかを決定します。それ以外の場合は、あなたのプロジェクトをギブスに公開するか、それとも私に郵送してください。私はそれについてさらに研究したいと思います。私が達成すれば、有用な情報を公開します。 –