春の豆を再初期化するには?

FIPS:

それは、実行時に春の豆を再初期化することは可能ですか?

私の豆は、いくつかのケースで変わる静的な設定を使用していますし、私は、Beanを再初期化する必要があります。

Amithクマール:

あなたは、あなたのユースケースに適したものを選ぶことができ、春のコンテキストでシングルトンBeanを更新するための3つのオプションがあります。

豆でreloadメソッドは
/そのプロパティをリロード更新しますあなたのBean内のメソッドを作成します。あなたのトリガ、アクセス春の文脈から豆に基づいて、そしてそれはまた、それがautowiredさ至る所&/注入された春のコンテキストで更新されます(シングルトン以降)更新Beanプロパティへのリロードメソッドを呼び出します。

レジストリ内のビーン削除&登録
あなたは使用することができますDefaultSingletonBeanRegistry削除&あなたのBeanを再登録します。これに対する唯一の欠点は、それがリフレッシュ/消費者のクラスですでにautowired /注入された豆の古いインスタンスをリロードしません。

DefaultSingletonBeanRegistry registry = (DefaultSingletonBeanRegistry) context.getBeanFactory();
registry.destroySingleton({yourbean}) //destroys the bean object
registry.registerSingleton({yourbeanname}, {newbeanobject}) //add to singleton beans cache

@RefreshScope
設定変更からビーン値のプロパティを更新するための有用な。しかし、それは非常に限ら&特定の目的ました。リソースそれについてもっと読むために。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=137457&siteId=1