【问题标题】:spring destroy bean manually instead of ctx.close()spring 手动销毁 bean 而不是 ctx.close()
【发布时间】:2013-05-21 10:37:59
【问题描述】:

是否可以告诉spring的容器销毁特定的bean(原型)以节省内存?

我不想使用 ctx.close() 来查看这个 bean 被破坏,而是在运行时。

【问题讨论】:

  • 是否对 beans 使用注解或 xml 配置?

标签: spring javabeans destroy


【解决方案1】:

如果我理解正确你想删除在运行时在 ctx 中定义的 bean,我会使用 BeanDefinitionRegistry 来完成这项工作吗,BeanDefinitionRegistry 有一个 removeBean() 方法,它将 bean 名称作为参数。

BeanDefinitionRegistry factory = 
   (BeanDefinitionRegistry) applicationCtx.getAutowireCapableBeanFactory();

然后

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

编辑

参考http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/beans/factory/support/BeanDefinitionRegistry.html#removeBeanDefinition%28java.lang.String%29

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2015-06-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多