1

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

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

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

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

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

4

1 回答 1

2

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

于 2013-03-15T13:43:19.240 回答