Spring ApplicationContext和BeanFactory

时间:2011-08-19 21:05:59

标签: java spring memory-management

Spring Application Context将在Server StartUp时加载所有Singleton bean。但是在大应用程序的情况下,它已经将许多对象加载到内存中。它不是应用程序中的性能瓶颈,它不会在堆中的堆/永久空间上收集空间。

2 个答案:

答案 0 :(得分:2)

这是程序员必须采取的设计选择问题 - 是的,对象会占用内存 - 是的,他们是急切地实例化的。这些对象将占用多少内存取决于它们包含的内容 - 它可能很小或者可能很大。无论好事还是坏事取决于你的计划是做什么的。

同样正确的是Spring还支持延迟初始化bean

<bean id="foo" class="com.foo.SomeBean" lazy-init="true"/>

答案 1 :(得分:0)

不,这不会导致你的内存问题,除非你在一些内存空间很小的嵌入式系统上运行。在这种情况下,“许多物体”最多可能是几百或几千。这与今天的内存分配几乎没有任何关系。