如何从ApplicationContext中删除单例Spring bean?

我想开发一个模块控制系统,以便每个Spring bean都可以由我自己的LifeCycle Controller进行管理。

但是我不知道如何从ApplicationContext中删除单例spring bean。

那可能是一个有趣的问题,您能帮我解决吗?

回答:

你可以尝试删除Bean定义。取得BeanDefinitionRegistry并致电removeDefinition(..)

这取决于创建应用程序的方式,但是例如在Web应用程序中,可以通过以下方式获取定义注册表:

BeanDefinitionRegistry factory = 

(BeanDefinitionRegistry) applicationCtx.getAutowireCapableBeanFactory();

(bean工厂实现BeanDefinitionRegistry)。

我不知道bean实例是否也会被删除。试试看。

以上是 如何从ApplicationContext中删除单例Spring bean? 的全部内容, 来源链接: utcz.com/qa/433789.html

回到顶部