1.1、bean對象建立的細節
1) 對象建立: 單例/多例
* scope="singleton", 預設值, 即 預設是單例 【service/dao/工具類】
* scope="prototype", 多例; 【Action對象】
2) 什麼時候建立?
* scope="prototype" 在用到對象的時候,才建立對象。
* scope="singleton" 在啟動(容器初始化之前), 就已經建立了bean,且整個應用隻有一個。
3)是否延遲建立(懶加載)
* lazy-init="false" 預設為false, 不延遲建立,即在啟動時候就建立對象
* lazy-init="true" 延遲初始化, 在用到對象的時候才建立對象
* (隻對單例有效)
設定懶加載有兩種方式:
1、 全局懶加載,可以在*.xml檔案的<beans>下配置default-lazy-init="true"
2、 如果隻想設定某一個<bean>為懶加載,可以在<bean>裡面配置lazy-init="true"
2.2、SpringIOC容器
SpringIOC容器,是spring核心内容。
作用: 建立對象 & 處理對象的依賴關系
IOC容器建立對象:
建立對象, 有幾種方式:
1) 調用無參數構造器
2) 帶參數構造器
3) 工廠建立對象
工廠類,靜态方法建立對象
工廠類,非靜态方法建立對象
代碼示例:
1、導包
2、配置applicationContext.xml / bean.xml檔案
實體類User
工廠類
測試代碼
測試結果:
1、預設無參數構造器
輸出:
------User對象建立【無參數構造器】------
2、帶參數構造器
輸出:
------User對象建立【無參數構造器】------
User [id=100, name=Jack]