java – 关于Spring bean容器中的范围和垃圾回收
我是新来的,我正在使用它在我的一个项目.我了解到,弹簧容器保存所有的bean,默认情况下,所有bean的范围是单例.我可以在application-context.xml中或者使用@scope来更改范围.
现在我的问题是,如果将类的范围作为“原型”,弹簧容器将实例化一个新对象,每次需要一个…对吗?现在,垃圾收集如何处理.如果不再使用垃圾,垃圾是否被收集,还是将其悬挂在容器中.因为我不想在每次需要一个并加载内存的时候创建多个对象. 有人帮我理解这个. 解决方法
从
Spring文档(
3.5.2 The prototype scope):
简单地说 – 一旦你创建并获得了对原型范围bean的引用,它就是JVM中唯一的参考.一旦这个引用超出范围,对象将被垃圾回收: void bar() { Object foo = ctx.getBean("foo") } 当你离开bar()方法的那一刻,没有任何其他引用的新的foo实例,这意味着它有资格进行垃圾收集.这种模式的结果是:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |