天天看點

Spring架構(二)

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]