spring實例化bean

          實例化bean
            通常情況下,class屬性通常是必須的(除了實例工廠方法創建bean和子bean的定義).大多數情況下,BeanFactory直接調用構造函數來"new"一個bean,class屬性確定bean實例的實現類.但這并不是創建bean的唯一方法.創建bean有如下三種方法:

          • 調用構造器"new"一個bean實例.
          • BeanFactory調用某個類的靜態工廠方法創建bean.
          • BeanFactory調用實例工廠方法創建bean

          <1>調用構造器"new"一個bean實例.的執行過程:

          • 程序創建BeanFactory實例.
          • 調用Chinese類的默認構造器創建默認實例.
          • 根據配置文件注入依賴關系,先實例化依賴bean,然后將依賴bean注入。
          • 返回一個完整的JavaBean實例。

          <2>BeanFactory調用某個類的靜態工廠方法創建bean.
            使用靜態工廠方法創建bean實例時,class屬性確定靜態工廠類,而不是該bean的類。spring需要知道哪個靜態工廠方法創建的bean實例,使用factory-method屬性來確定方法名。Spring調用工廠方法(也包含一組參數),并返回一個有效的對象。之后,bean實例的使用與采用其他方法創建的完全一樣。如果靜態工廠方法需要參數,使用<constructor-arg>元素傳入。

          • class元素不再是bean的實現類,而是靜態工廠類;
          • 必需有factory-method屬性確定產生實例的靜態工廠方法;
          • 靜態工廠方法需要參數,則使用<constructor -arg>元素確定靜態工廠方法.

          <3>調用實例工廠方法創建bean
          通過實例工廠方法創建bean時,bean元素不能含有class屬性.因為BeanFactory不再直接實例化該bean,BeanFactory僅僅執行工廠的方法,工廠的方法返回bean實例.采用實例工廠方法創建bean應指定如下兩個屬性.

          • 工廠bean的id,該id屬性應該對應spring容器中的一個bean
          • 工廠方法名,該方法可產生bean實例.
          • 與靜態工廠方法相似,如果需要在調用工廠方法時傳入參數,使用<constructor-arg>元素確定參數值

          posted on 2007-04-09 10:33 肖麥 閱讀(1729) 評論(0)  編輯  收藏 所屬分類: Spring


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          English

          JavaAPI

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 湘阴县| 江陵县| 盘锦市| 宁城县| 二连浩特市| 正安县| 蒙城县| 灌阳县| 永年县| 茂名市| 探索| 修文县| 高雄市| 马山县| 弥渡县| 白朗县| 万全县| 阜阳市| 普陀区| 龙口市| 亳州市| 嫩江县| 霍山县| 侯马市| 普陀区| 沁源县| 柯坪县| 丘北县| 绵阳市| 肥西县| 曲沃县| 保亭| 德兴市| 稷山县| 佛山市| 浦城县| 万宁市| 交城县| 莲花县| 泸定县| 沙雅县|