2013-03-15 54 views
1

当使用延迟加载的单例bean时,Spring是否优化内存使用?Spring单例内存使用优化

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

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

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

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

回答

2

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