0

PropertySourcesPlaceholderConfigurerのカスタム実装があります。これは、追加のプロパティソースを読み込んで別の位置に配置するために使用しています(1つは最後、もう1つはsystemPropertiesです)。したがって、プロパティは異なるレベルでオーバーライドすることができます。カスタムプロパティに基づいてBeanを読み込む方法

いくつかのプロパティに基づいて、私は豆のセットをロードする必要があります。そのために私はImportBeanDefinitionRegistrarを実装しています。

残念ながらImportBeanDefinitionRegistrarPropertySourcesPlaceholderConfigurerより前に実行されます。 同じ結果を得た@ConditionalOnPropertyも試してみました。初期の段階で実行されるPropertySourceFactoryでは、その時点で私はそれらの追加のプロパティソースを配置することはできません。

ImportBeanDefinitionRegistrarの前に、または春のライフサイクルの初めに、PropertySourceをカスタムオーダーで追加する方法はありますか?

ここで私はsandbox appという概念を持っています。 現実には、私はこれをSpringとSpringのブートアプリケーションのためのハウスライブラリーと同じように、プロパティを持つ追加の機能を有効にするために持っています。

答えて

0

EnvironmentPostProcessorを実装し、そこにプロパティソースのすべてのロジックを移動する必要があります。現在のプロジェクトは、@PropertySourceが早期に処理されるという保証がないという意味で壊れています(実際はそうではありません)。

+0

アドバイスをいただきありがとうございます。私はそのアプローチを試してみます。残念ながら、私はSpring and Spring Bootアプリケーションのためのハウス・ライブラリのようなコンセプトを構築しています。 Springベースのアプリケーション(Spring Bootなしのレガシー)に類似したものはありますか? –

+0

通常のSpringアプリケーションを実装すると、コンテキストをロードする手間がかかります。コンテキストをリフレッシュする前に環境をカスタマイズするコードを書くだけです。 [この問題](https://jira.spring.io/browse/SPR-14386)はおそらく関連しています。 –

関連する問題