私は春のプロファイルを使用して、さまざまな Bean のセットを管理しています。アクティブなプロファイルは、プログラムでオーバーライドするように設定されています
org.springframework.context.ApplicationContextInitializer<ConfigurableApplicationContext>.initialize()
と使用
applicationContext.getEnvironment().setActiveProfiles(activeProfileEnv);
アクティブなプロファイルのソースは、環境固有のファイルです。したがって、環境ファイルのプロファイルが (Bean XML で) 使用可能なプロファイルと異なる可能性が非常に高く、これは避けたいと考えています。この目的で使用できる「getAvailableProfiles」のようなアクセサーが ConfigurableApplicationContext に表示されません。アクティブなプロファイル値が設定される前に実際に利用可能かどうかを検証することは可能ですか?
サンプル XML の例
... <!-- Beans of all profiles -->
<beans profile="ProfileA">
...
</beans>
<beans profile="ProfileB">
...
</beans>
この場合、利用可能なプロファイルの私の定義は「ProfileA」、「ProfileB」です。この場合、「ProfileC」をアクティブなプロファイルに設定したくありません。