天天看點

spring容器中的bean建立

springIOC:

   *  spring容器中的bean建立

        *  三種方案   面試題

            *  利用預設的構造函數

            *  利用靜态工廠方法

            *  利用執行個體工廠方法

        *  建立對象的時機

            *  預設情況下,在spring啟動的時候,建立納入spring容器中所有的bean

                  在spring容器啟動的時候,可以檢查錯誤

                  但是如果bean的屬性中有資料,會過早的加載到記憶體中,是以如果bean中有資料

                  應該把資料的對象的聲明放在方法中

            *  如果在spring的配置檔案中,有lazy-init為true,則context.getBean("beanId")時

               才要建立對象

                  缺點:在spring容器啟動的時候,是檢驗不出錯誤的

        *   對象的作用域

            *  在配置檔案中,scope為

                  "singleton" 

                     *  預設值

                     *  spring産生的bean隻有一個執行個體

                     *  處于單例模式的bean的建立、初始化、銷毀都是受spring容器管理的

                     *  在容器關閉的時候執行銷毀工作

                  "prototype"

                     *  多例

                     *  spring容器負責該bean的建立、初始化,但是銷毀工作程式員做

                     *  無論該bean的lazy-init為什麼值,都在context.getBean時建立對象

                     *  如果該bean中有資源對象,手動關閉

        *    init和destroy方法

               init在構造器執行完畢之後執行

               destroy方法在spring關閉的時候執行