ApplicationContext からシングルトン Spring Bean を削除するにはどうすればいいですか? 質問する

ApplicationContext からシングルトン Spring Bean を削除するにはどうすればいいですか? 質問する

私は開発したいモジュール制御システムすべての Spring Bean を独自の LifeCycle Controller で管理できるようにします。

しかし、シングルトン Spring Bean を ApplicationContext から削除する方法がわかりません。

それは興味深い問題かもしれません、解決するのを手伝ってもらえますか?

ベストアンサー1

定義を削除すると、定義の削除と、対応するシングルトンの破棄(その Bean 上のすべてのコンテナ参照の削除)の両方が行われます。

((BeanDefinitionRegistry) beanFactory).removeBeanDefinition("myBean");

シングルトンを削除するだけの場合は、次のようにします。

((DefaultListableBeanFactory) beanFactory).destroySingleton("myBean");

後者の方法は、シングルトンを登録したばかりで、Bean定義を定義していない場合に特に便利です。

((SingletonBeanRegistry) beanFactory).registerSingleton("myBean", myBeanInstance); 

おすすめ記事