<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

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

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

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

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

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

    二、spring集成struts
    1、應(yīng)用服務(wù)器沒有直接調(diào)用啟動Spring的方法,但是應(yīng)用服務(wù)器編譯運行servlet,filter,listener,所以spring提供一個listener類,在服務(wù)器初始化的時候調(diào)用該類中的方法,所以在容器中配置如下:
    <!-- 指定spring的配置文件,多個文件之間用逗號分隔 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:beans.xml</param-value>
    </context-param>
    <!-- 啟動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交給引擎呢,通過重寫struts中的requestprocessor類中的processactioncreate方法,在spring中獲得action后交給引擎管理,這也是struts的一個擴展機制。
    所以我們要在struts-config.xml中配置controller
    <controller>
    <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
    </controller>


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

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产一精品一aⅴ一免费| 69精品免费视频| 免费在线观看黄网| 亚洲综合无码一区二区痴汉| 国产精品爱啪在线线免费观看| 中文字幕亚洲综合久久| 曰批全过程免费视频网址 | 亚洲阿v天堂在线2017免费| 天天综合亚洲色在线精品| 精品少妇人妻AV免费久久洗澡| 亚洲大码熟女在线观看| 国产在线观看免费视频播放器| www亚洲精品久久久乳| 亚洲国产综合久久天堂| 福利免费在线观看| 亚洲欧洲在线观看| 欧洲乱码伦视频免费| 亚洲国产欧洲综合997久久| 免费播放春色aⅴ视频| 91视频免费观看高清观看完整| 久久亚洲精品视频| 中文毛片无遮挡高潮免费| 亚洲成a人无码亚洲成www牛牛| 亚洲精品456播放| 日日麻批免费40分钟无码| 亚洲av一本岛在线播放| 国产aa免费视频| 成人久久免费网站| 亚洲天堂2016| 久久久久亚洲精品天堂久久久久久 | 午夜无码A级毛片免费视频| 亚洲精品综合久久中文字幕 | 亚洲欧洲日产国码无码网站| 日本一卡精品视频免费| 亚洲精品人成网线在线播放va| 亚洲av成人一区二区三区在线观看| 暖暖免费日本在线中文| 91亚洲视频在线观看| 亚洲精品tv久久久久久久久久| 无码精品人妻一区二区三区免费看| 久久亚洲精品国产亚洲老地址|