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 肖麥 閱讀(1728) 評論(0)  編輯  收藏 所屬分類: Spring


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


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

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          English

          JavaAPI

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 根河市| 辽源市| 武平县| 波密县| 休宁县| 富蕴县| 兴国县| 静海县| 亳州市| 沅陵县| 中西区| 福安市| 莱州市| 张家港市| 长汀县| 卫辉市| 常州市| 朝阳区| 泾阳县| 美姑县| 新乡县| 承德县| 射洪县| 马关县| 凤阳县| 灵寿县| 保靖县| 盐山县| 长顺县| 孝义市| 绵竹市| 合肥市| 小金县| 武义县| 长沙县| 岐山县| 澄城县| 石楼县| 五河县| 扬中市| 孙吴县|