Roy*_*ove 15 spring garbage-collection
我有一个单例bean,它有一个创建原型bean实例的方法.我正在使用此处记录的方法来获取原型bean的实例.
public class SingletonService implements ApplicationContextAware {
private ApplicationContext applicationContext;
public void go() {
MyPrototypeBean prototype = applicationContext
.getBean(MyPrototypeBean.class);
prototype.doSomething();
}
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = applicationContext;
}
}
Run Code Online (Sandbox Code Playgroud)
起初我认为这很好,当'go'方法返回时,我的'prototype'实例将超出范围,这意味着实例将没有引用并且将被垃圾收集.
但是,同行指出文档中的以下声明:
客户端代码必须清理原型范围的对象并释放原型bean所持有的昂贵资源.
所以听起来Spring会保留一个引用,所以gc永远不会把它拿起来?如果是这样的话,我如何告诉Spring发布引用?该文档提到我可以使用"自定义bean后处理器",但不清楚该处理器适合的位置以及它将运行的代码.
感谢所有人提前帮忙,罗伊
| 归档时间: |
|
| 查看次数: |
6787 次 |
| 最近记录: |