自由飛翔

          我在仰望,java之上

          統(tǒng)計

          留言簿(2)

          我關(guān)注的blog

          閱讀排行榜

          評論排行榜

          spring的singleton和prototype

          這兩天面試有人問了問題,singleton和prototype的區(qū)別?
          就這問題參考網(wǎng)上資料,總結(jié)一下,以備日后用。

          原文地址:作者:macg

          • singleton---單例模式


          單例模式,在spring 中其實是scope(作用范圍)參數(shù)的缺省設(shè)定值
          每個bean定義只生成一個對象實例,每次getBean請求獲得的都是此實例

          • 單例模式分為餓漢模式和懶漢模式
          餓漢模式
          spring singleton的缺省是餓漢模式:啟動容器時(即實例化容器時),為所有spring配置文件中定義的bean都生成一個實例
          懶漢模式
          在第一個請求時才生成一個實例,以后的請求都調(diào)用這個實例
          spring singleton設(shè)置為懶漢模式:

          <beans
          default-lazy-init="true">


          • 另一種和singleton對應(yīng)的scope值---prototype多實例模式
          調(diào)用getBean時,就new一個新實例

          • singleton和prototype的比較
          singleton
          xml配置文件:
          <bean id="dvdTypeDAO" class="com.machome.hibernate.impl.DvdTypeDAOImpl" />   
          測試代碼:
                  ctx = new ClassPathXmlApplicationContext("spring-hibernate-mysql.xml");
                  DvdTypeDAO tDao1 = (DvdTypeDAO)ctx.getBean("dvdTypeDAO");
                  DvdTypeDAO tDao2 = (DvdTypeDAO)ctx.getBean("dvdTypeDAO");
          運(yùn)行:        
          true
          com.machome.hibernate.impl.DvdTypeDAOImpl@15b0333
          com.machome.hibernate.impl.DvdTypeDAOImpl@15b0333

          說明前后兩次getBean()獲得的是同一實例,說明spring缺省是單例

          prototype
          <bean id="dvdTypeDAO" class="com.machome.hibernate.impl.DvdTypeDAOImpl" scope="prototype" />
           
          執(zhí)行同樣的測試代碼
          運(yùn)行:
          false
          com.machome.hibernate.impl.DvdTypeDAOImpl@afae4a
          com.machome.hibernate.impl.DvdTypeDAOImpl@1db9852
          說明scope="prototype"后,每次getBean()的都是不同的新實例






          Gavin

          posted on 2011-08-10 17:31 GavinMiao 閱讀(2038) 評論(0)  編輯  收藏 所屬分類: spring

          主站蜘蛛池模板: 广德县| 元江| 龙胜| 军事| 离岛区| 宜良县| 霍山县| 三穗县| 湟中县| 太仓市| 朝阳县| 长治县| 安图县| 安龙县| 晴隆县| 城固县| 和田市| 观塘区| 中山市| 正阳县| 宣武区| 巴中市| 临海市| 景泰县| 乃东县| 南昌县| 辛集市| 建阳市| 普兰县| 繁峙县| 尼木县| 肥乡县| 龙游县| 高要市| 陵水| 柞水县| 哈巴河县| 颍上县| 界首市| 定南县| 怀宁县|