閱讀632 返回首頁    go 阿裏雲 go 技術社區[雲棲]


第二章 IoC Bean的初始化與延遲加載

在默認情況下,SpringApplicationContext容器在啟動的時候,會自動實例化所有singletonBean並緩存在容器中。雖然啟動時會花費一些時間,但帶來兩個好處:

1、對Bean提前實例化操作會及早發現一些潛在的配置問題;

2Bean以緩存的方式保存,當運行期使用到該Bean的時候無需再實例化,加快運行的效率。

如果用戶不希望容器啟動的時候提前實例化singletonBean,可以通過lazy-init屬性進行控製:

<bean   scope="singleton" lazy-init="true"></bean>

也可以在beans標簽中使用default-lazy-init對所有的singletonBean進行延遲加載:

<beans
	xmlns="https://www.springframework.org/schema/beans"
	xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="https://www.springframework.org/schema/p"
	xsi:schemaLocation="https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
	default-lazy-init="true">

被設置為延遲加載的Bean在某些情況下依舊會提前實例化:如果這個Bean被其它需要提前實例化的Bean引用到,那麼Spring也將忽略延遲加載設置。

一般我們不做延遲加載。


最後更新:2017-04-03 18:52:13

  上一篇:go android源碼地址
  下一篇:go C++內存管理學習筆記(5)