1. 程式人生 > >Spring中lazy-init解釋

Spring中lazy-init解釋

lazy-init是Spring中延遲載入bean的屬性。

<bean id="testBean" class="com.eacxzm.TestBean" lazy-init="false">,那麼Spring啟動時會立即進行例項化

<bean id="testBean" class="com.eacxzm.TestBean" lazy-init="true">,那麼ApplicationContext例項化時被提前例項化,設定為lazy的bean將不會在ApplicationContext啟動時提前被例項化,而是在第一次向容器通過getBean索取bean時例項化的。

如果一個設定了立即載入的bean1引用了一個延遲載入的bean2,那麼bean1在容器啟動時被例項化,而bean2由於被bean1引用,所以也被例項化,這種情況也符合延遲載入的bean在第一次呼叫時才被例項化的規則。 

lazy-init盡在scope屬性為singleton時,才會有效,如果scope的屬性值為pototype,那麼及時設定了lazy-init="false",容器啟動時也不會被例項化,而是呼叫getBean方法例項化。