構成を更新せずにコンテキストを更新することは可能ですか?
メソッドを見つけましConfigurableApplicationContext.refresh()
たが、ファイルから構成を更新します。実行時に以下の手順を実行したいと思います。
- コンテキストと Bean を取得する
- Bean プロパティの値を変更する
- コンテキストをリフレッシュ
構成を更新せずにコンテキストを更新することは可能ですか?
メソッドを見つけましConfigurableApplicationContext.refresh()
たが、ファイルから構成を更新します。実行時に以下の手順を実行したいと思います。
あなたが望むものは少し奇妙です。ファクトリ THEMSELVES はプロパティから初期化される可能性があるため、どこから来たのか気にせずに「コンテキストを更新する」だけの場合、ファクトリは初期状態に戻ります。そのように記述しましょう。
1. Context Started
2. Factory initalized
3. Factory used to create beans
4. ..application running
5. You manually change a FACTORY prop that doesn't affect the factory, but a specific Bean. You want your bean refreshed. You think refreshing the context will do that for you
6. Boom, you refresh the context. Factories are reinitialized to their default values
7. Factories are used to create beans, which are the same beans in step 2, not the ones you would want in step 5, since the factories themselves are reverted to their default properties
解決策は何ですか?
セットアップ方法を変更できます。ファクトリが子 Bean に渡すプロパティが何であれ、子 Bean でオートワイヤするだけです。次に、これらのプロパティを変更すると、子 Bean に反映されるため、コンテキストを更新する必要はありません。シンプルですね。