Spring单例内存使用优化

时间:2013-03-15 13:33:33

标签: java spring garbage-collection spring-ioc

在使用延迟加载的单例bean时,Spring是否会以某种方式优化内存使用?

假设我们有一个单独的bean代表一些模块(应用程序框架/窗口)并且它是懒惰的。这个bean加载了一些类,这些类是这个框架的组件,并且没有在Spring的IoC容器中定义。

假设我们关闭模块JFrame,框架的所有组件通常应该被垃圾收集,但它们仍然被spring bean引用。

在这种情况下,spring会优化内存使用吗?

准确地说,我不是在询问原型,而是在询问单身人士。因为我们有奇怪的行为,在关闭窗口时释放使用Spring单例内存。当我们为窗口使用原型bean时,会释放更多的内存。

1 个答案:

答案 0 :(得分:2)

Spring实例化后不释放单例。在窗口关闭时释放内存可能是因为某些资源释放在Windows关闭后完成,并且可能与Spring bean没有任何关系。有关更多信息,您应该发布一些代码,什么是您的bean,如何打开和关闭窗口。