隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827240
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

          Bean的作用域

            在spring2.0中,一共定義了5種作用域,分別是singleton、prototype、request、session、
          globalSession。其中后面三種僅對WEB應用程序有效。
            spring2.0通過scope=""屬性來定義Bean有作用域,而在spring1.x中,由于只有singleton 和
          prototype這兩種作用域,因此,spring1.x中定義Bean的作用域是通過singleton=“true|false" 來
          定義的。在spring2.0中首先應該考慮用scope屬性來定義Bean 的作用域。

          Singleton作用域
            
            spring2.0是默認Bean的作用域是scope="singleton"。即spring的IoC容器僅為每個Bean創建一個
          實例并且保持Bean的引用,換言之,每次調用getBean()方法請求返回的Bean總是同一個實例。這類似
          于《設計模式》一書中的Singleton(單例)模式。

            public class Singleton {
              private static Singleton instance = new Singleton();
              private Singleton() {};
              pubilc static Singleton getInstance() {
                return instance;
              }
            }
            由于構造方法被申明為private,因此,在類的外部不可實例化該類,唯一的實例持有在靜態引用中
          從外部獲取該實例的唯一入口是調用Singleton的靜態方法Singleton.getInstance().

          Prototype作用域

            如果需要每次返回Bean的新實例,即每次都新建一個實例,則可以通過設置scope="prototype"來
          實現。這樣我們就告訴了spring容器采用Prototype作用域。采用prototype作用域時,spring容器總會
          返回一個創建的新實例,因此spring容器一旦將實例交給客戶端,就不再對其進行跟蹤引用了,所以
          無法對prototype作用域的Bean定義destory-method,不過仍可以使用init-method。
          其它三個屬性值僅對WEB程序有效,這里不作討論。



          posted on 2007-10-21 17:55 Ke 閱讀(1184) 評論(0)  編輯  收藏 所屬分類: spring
          主站蜘蛛池模板: 钦州市| 衡阳市| 天峨县| 营口市| 泰州市| 镇康县| 潍坊市| 永善县| 土默特左旗| 兰西县| 嘉黎县| 昌平区| 克什克腾旗| 平江县| 彭水| 嘉荫县| 上栗县| 新乡县| 米泉市| 九龙城区| 哈尔滨市| 海城市| 海宁市| 枞阳县| 柳河县| 洞头县| 阜新市| 云林县| 鞍山市| 类乌齐县| 临高县| 赣州市| 墨玉县| 封丘县| 太保市| 集贤县| 那坡县| 西藏| 抚顺县| 昌图县| 西充县|