隨筆-199  評(píng)論-203  文章-11  trackbacks-0
          一、事務(wù)管理
          事務(wù)傳播
          1、required:方法在一個(gè)事務(wù)中執(zhí)行,如果調(diào)用的方法在一個(gè)事務(wù)中,則使用該事務(wù),否則將創(chuàng)建一個(gè)新的事務(wù)。(必須有,有就用,沒(méi)有就建)
          2、mandatory:如果運(yùn)行于事務(wù)中的客戶調(diào)用了該方法,方法在客戶的事務(wù)中執(zhí)行。如果客戶沒(méi)有關(guān)聯(lián)到事務(wù)中,容器就會(huì)拋出TransactionRequiredException.(必須有,有就用,沒(méi)有報(bào)錯(cuò))
          3、requiresnew:方法將在一個(gè)新的事務(wù)中執(zhí)行,如果調(diào)用的方法已經(jīng)在一個(gè)事務(wù)中,則暫停舊的事務(wù)。在調(diào)用結(jié)束后恢復(fù)舊的事務(wù)。(必須有,有沒(méi)有都要建)
          4、supports:如果方法在一個(gè)事務(wù)中被調(diào)用,則使用該事務(wù),否則不使用事務(wù)。(有沒(méi)有都中,有就用,沒(méi)有不用)
          5、not_supported:如果方法在一個(gè)事務(wù)中被調(diào)用,容器會(huì)在調(diào)用之前終止該事務(wù)。在調(diào)用結(jié)束后,容器會(huì)恢復(fù)客戶事務(wù)。如果客戶沒(méi)有關(guān)聯(lián)到一個(gè)事務(wù)中,容器不會(huì)入運(yùn)行在該方法啟動(dòng)一個(gè)新的事務(wù)。用notsupported屬性標(biāo)識(shí)不需要事務(wù)的方法。因?yàn)槭聞?wù)會(huì)帶來(lái)更高的性能支出,所以這個(gè)屬性可以提高性能。(不需要,有就掛起事務(wù),沒(méi)有直接運(yùn)行)
          6、Never:如果在一個(gè)事務(wù)中調(diào)用該方法,容器會(huì)拋出RemoteException。如果客戶沒(méi)有關(guān)聯(lián)到一個(gè)事務(wù)中,容器不會(huì)在運(yùn)行入該方法前啟動(dòng)一個(gè)新的事務(wù)。(必須沒(méi)有,有就報(bào)錯(cuò),沒(méi)有就直接運(yùn)行)
          事務(wù)隔離
          為什么要使用事物隔離,是因?yàn)槭挛锊l(fā)引起的一些錯(cuò)誤現(xiàn)象
          并發(fā)問(wèn)題:
          臟讀:一個(gè)事務(wù)讀取了未提交的事務(wù)
          不可重復(fù)讀:同一個(gè)事務(wù)中多次讀取同一個(gè)數(shù)據(jù)返回的結(jié)果不同
          幻讀:一個(gè)事務(wù)讀取到了另一個(gè)事務(wù)已提交的insert數(shù)據(jù)。

          事務(wù)并發(fā)處理:
          共享鎖:共享鎖用于讀取數(shù)據(jù)操作,它允許其他事務(wù)同時(shí)讀取某鎖定的資源,但不允許其他事務(wù)更新它。
          排他鎖:排它鎖用于修改數(shù)據(jù)的場(chǎng)合。它鎖定的資源,其他事務(wù)不能讀取也不能修改。
          更新鎖:更新鎖在更新操作的初始化階段用來(lái)鎖定可能要被修改的資源,從而避免使用共享鎖造成的死鎖現(xiàn)象。

          事務(wù)隔離級(jí)別:
          ReadUncommitted:讀未提交數(shù)據(jù),該選項(xiàng)指示數(shù)據(jù)庫(kù)讀取數(shù)據(jù)時(shí)不使用任何鎖。在這種情況下,事務(wù)可以讀取到未提交的數(shù)據(jù),會(huì)出現(xiàn)臟讀,不可重復(fù)讀和幻讀現(xiàn)象。

          ReadCommited:
          該選項(xiàng)只會(huì)返回"讀取時(shí)間點(diǎn)"之前已提交的數(shù)據(jù)。因此可以避免臟讀,但是會(huì)出現(xiàn)不可重復(fù)讀,另外還會(huì)出現(xiàn)幻讀現(xiàn)象。

          RepeatableRead:該選項(xiàng)能夠保證可重復(fù)讀,可以避免臟讀和不可重復(fù)讀。

          Serializable:該選項(xiàng)能夠避免臟讀、不可重復(fù)讀和幻讀現(xiàn)象,是最嚴(yán)格的隔離級(jí)別。

          二、spring集成struts
          1、應(yīng)用服務(wù)器沒(méi)有直接調(diào)用啟動(dòng)Spring的方法,但是應(yīng)用服務(wù)器編譯運(yùn)行servlet,filter,listener,所以spring提供一個(gè)listener類,在服務(wù)器初始化的時(shí)候調(diào)用該類中的方法,所以在容器中配置如下:
          <!-- 指定spring的配置文件,多個(gè)文件之間用逗號(hào)分隔 -->
          <context-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>classpath:beans.xml</param-value>
          </context-param>
          <!-- 啟動(dòng)Spring容器 -->
          <listener>
              <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
          </listener>
          2、我們把我們需要交給spring管理的類在beans.xml中配置:
          如<bean name="/user/regist"
          class="cn.sun.ssh.web.action.UserManagerAction">
          <property name="dao" ref="userDAO"></property>
          </bean>
          但是action是被引擎調(diào)用的,我們?nèi)绾伟研枰腶ction交給引擎呢,通過(guò)重寫(xiě)struts中的requestprocessor類中的processactioncreate方法,在spring中獲得action后交給引擎管理,這也是struts的一個(gè)擴(kuò)展機(jī)制。
          所以我們要在struts-config.xml中配置controller
          <controller>
          <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
          </controller>


          三、spring集成hibernate,spring和hibernate集成主要有兩方面注意
          1、spring集成hibernate時(shí)把dao和sessionfactory交給spring管理,
          posted on 2009-06-29 17:22 Werther 閱讀(1948) 評(píng)論(1)  編輯  收藏 所屬分類: 22.Spring

          評(píng)論:
          # re: Spring總結(jié) 2009-07-01 13:26 | 找個(gè)美女做老婆
          Java高手群:Java樂(lè)園,群號(hào):28840096 Java樂(lè)園網(wǎng)站:http://www.javaly.cn 歡迎Java高手加入,大家一起交流經(jīng)驗(yàn),相互學(xué)習(xí),共同進(jìn)步  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 嘉义县| 泗阳县| 沾益县| 定南县| 贵阳市| 旌德县| 日喀则市| 东山县| 腾冲县| 海原县| 新余市| 台江县| 江口县| 西畴县| 墨脱县| 荔波县| 蒲江县| 福贡县| 大关县| 深圳市| 米易县| 梁山县| 岳西县| 洛阳市| 连云港市| 承德县| 呈贡县| 通州市| 隆尧县| 衡东县| 灵丘县| 卫辉市| 调兵山市| 璧山县| 桃园市| 浙江省| 周宁县| 辉县市| 潮安县| 阳朔县| 西乡县|