私のSpringアプリケーションコンテキストでは、データソースの動的Bean定義とすべてのデータベースのセッションファクトリを担当するため、アプリケーションコンテキストで常に必要です(同じスキーマ、複数のデータベース)をシステムに登録します。プロファイルの開発がアクティブで、システムに登録されている各データベースに対してLiquibaseデータベースアップグレードを適用する場合にのみ存在するもう1つのbean LiquibaseInitBean
があります。SpringコンテキストのBean間の条件依存性
DynamicSessionFactoryInitBean
は、常に最新のデータベーススキーマを見ているように、(それが開発プロファイルを意味することは有効で、存在している時はいつでも)LiquibaseInitBean
に依存するようにDynamicSessionFactoryInitBean
を作るためにいいだろう。開発プロファイルがアクティブでないとき
DynamicSessionFactoryInitBean
定義について
depends-on="liquibaseInitBean"
属性を追加
<beans>
<!-- other beans.... -->
<bean id="dynamicSessionFactoryInitBean" class="my.app.DynamicSessionFactoryInitBean" />
<beans profile="development">
<bean id="liquibaseInitBean" class="my.app.liquibase.LiquibaseInitBean" />
</beans>
<beans>
は明らかに(「LiquibaseInitBean」という名前ませBeanが定義されていない)問題が発生します。 Springに "条件付き依存"または "存在する場合に依存"型の機能がありますか?
ありがとう!私はこれを試してみる。 –