私は開発したいモジュール制御システムすべての Spring Bean を独自の LifeCycle Controller で管理できるようにします。
しかし、シングルトン Spring Bean を ApplicationContext から削除する方法がわかりません。
それは興味深い問題かもしれません、解決するのを手伝ってもらえますか?
ベストアンサー1
定義を削除すると、定義の削除と、対応するシングルトンの破棄(その Bean 上のすべてのコンテナ参照の削除)の両方が行われます。
((BeanDefinitionRegistry) beanFactory).removeBeanDefinition("myBean");
シングルトンを削除するだけの場合は、次のようにします。
((DefaultListableBeanFactory) beanFactory).destroySingleton("myBean");
後者の方法は、シングルトンを登録したばかりで、Bean定義を定義していない場合に特に便利です。
((SingletonBeanRegistry) beanFactory).registerSingleton("myBean", myBeanInstance);