是否可以告诉spring容器销毁特定的bean(原型(prototype))以节省内存?
我不想使用 ctx.close() 来查看此 bean 被销毁,而是在运行时使用。
最佳答案
如果我理解正确的话,你想删除运行时在 ctx 中定义的 bean,我会使用 BeanDefinitionRegistry 来完成此操作吗? BeanDefinitionRegistry 有一个方法removeBean() 以 bean 名称作为参数。
BeanDefinitionRegistry factory =
(BeanDefinitionRegistry) applicationCtx.getAutowireCapableBeanFactory();
然后
((DefaultListableBeanFactory) beanFactory).destroySingleton("myBean");
编辑
关于spring 手动销毁bean而不是ctx.close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16667957/