半夜思考之查漏補缺, 在 Spring中, 全部的 bean 都是 Spring 建立的嗎 ?

      Spring 是一個 bean 容器, 負責 bean 的建立, 那麼全部的 bean對象都是 Spring 容器建立的嗎 ? 答案是否認的. spa

可是乍一想, 好像全部的對象都是 Spring 容器負責建立並注入的, 今天在看書的時候, 看到了建立 bean 的三種方式, 分別是 : 對象

  1. 使用構造器建立 bean 實例
  2. 使用靜態工廠方法建立 bean
  3. 調用實例工廠方法建立 bean

第一個是 Spring 使用反射建立 bean 對象 , class屬性指定的是 Bean實現類 ; class

第二個的 class 屬性指定的是靜態工廠類 , 同時還須要指定靜態工廠方法 factory-method屬性 , 而且要提供靜態工廠方法須要的參數 , 以及被建立對象所須要的參數( 若是有的話 ) , 建立 bean 對象的語句寫在靜態工廠方法裏 , 將bean對象以返回值的形式返回給 Spring 容器 ; 容器


第三個比第二個多個一個工廠實例對象 , 也就是 factory-bean 屬性 , 其餘的和靜態工廠的作法同樣 , 建立 bean 對象的語句寫在工廠方法裏, 將bean對象以返回值的形式返回給 Spring 容器 ; 反射

相關文章
相關標籤/搜索