默認情況下,容器初始化的時候便會把bean實例化,通常這樣做可以讓一些配置或者bean實例化的異常在容器啟動的時候就發現,而不是在N久之后。但有時候,我們希望某個可能不會用到但又不是100%不用的bean能夠在我們用的時候才實例化,這樣可以節省系統資源。所以萬能的Spring為我們提供了lazy-init屬性:
<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/> <bean name="not.lazy" class="com.foo.AnotherBean"/>
上面例子中,容器初始化時not.lazy bean會被實例化,而lazy bean不會被實例化。但如果一個配置了lazy-init="true"屬性的bean被另外一個bean依賴,那Spring還是會在容器初始化的時候實例化這個bean。
另外,假設我們希望某個bean的配置文件中的所有bean都是懶加載的,那我們可以給<beans/>標簽添加default-lazy-init="true"屬性。
