2011-08-19 67 views
1

Spring Server應用程序上下文將在服務器啓動時加載所有Singleton bean。但是在大型應用程序的情況下,它已經將許多對象加載到內存中。它不是應用程序中的性能瓶頸,它不會收集堆中的堆/永久空間上的空間。Spring ApplicationContext和BeanFactory

回答

2

這是一個程序員不得不採取的設計選擇問題 - 是的,對象將佔用內存 - 是的,他們急於實例化。這些對象佔用多少內存取決於它們包含的內容 - 它可能很小或可能很大。它的好壞取決於你的程序的功能。

只是同樣真實的是,Spring也支持豆類

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

的初始化工作你也可以強制所有豆子延遲加載。請參閱http://static.springsource.org/spring/docs/2.0.x/reference/beans.html#beans-factory-lazy-init – Fortyrunner

0

不,這不會是導致你的內存問題的原因,除非你在一些內存微小的嵌入式系統上運行。在這種情況下,「許多物體」最多可能有幾百或幾千個。這與今天的內存分配幾乎沒有任何關係。

相關問題