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

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

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

    zyskm用夢(mèng)想丈量人生,用奔跑丈量激情

    spring聲明性事務(wù)常見問題分析(續(xù))

    上一篇說(shuō)明了一種spring事務(wù)配置方式,這次補(bǔ)上另一種。
    見配置文件:
    <!-- 事務(wù)攔截 -->
        
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
            
    <tx:attributes>
                
    <tx:method name="get*" propagation="REQUIRED" read-only="true" />
                
    <tx:method name="find*" propagation="REQUIRED" read-only="true" />
                
    <tx:method name="search*" propagation="REQUIRED" read-only="true" />
                
    <tx:method name="save*" propagation="REQUIRED" />
                
    <tx:method name="modify*" propagation="REQUIRED" />
                
    <tx:method name="send*" propagation="REQUIRED" />
                
    <tx:method name="revoke*" propagation="REQUIRED" />
                
    <tx:method name="del*" propagation="REQUIRED" />
                
    <tx:method name="logging*" propagation="NOT_SUPPORTED" read-only="true" />
                
    <tx:method name="*" propagation="SUPPORTS" read-only="true"  />
            
    </tx:attributes>
        
    </tx:advice>
        
    <aop:config>
            
    <aop:pointcut id="projectServiceOperation" expression="execution(* cn.ceopen.bss..*.service..*(..))" />
            
    <aop:advisor pointcut-ref="projectServiceOperation" advice-ref="txAdvice" />
        
    </aop:config>

    重點(diǎn)說(shuō)明兩點(diǎn):
    1.<aop:pointcut id="projectServiceOperation" expression="execution(* cn.ceopen.bss..*.service..*(..))" />
    表示你要進(jìn)行事務(wù)控制的類名。詳細(xì)資料可以查下 aspectj語(yǔ)法。
    配置完成一定要實(shí)際測(cè)試一下,我配置過 expression="execution(* cn.ceopen.bss..*.service.*(..))" 少了一個(gè)點(diǎn),導(dǎo)致事務(wù)不起作用。
    導(dǎo)致項(xiàng)目很長(zhǎng)一段時(shí)間事務(wù)方面沒經(jīng)過嚴(yán)格測(cè)試。
    2.
    Spring的AOP事務(wù)管理默認(rèn)是針對(duì)unchecked exception回滾。
    也就是默認(rèn)對(duì)RuntimeException()異常極其子類進(jìn)行事務(wù)回滾。
    在項(xiàng)目中定義公共的RuntimeException異常,避免每個(gè)開發(fā)人員隨意拋出異常。
    不然的話沒新定義一個(gè)異常,就要修改tx:method rollback-for 太麻煩了。

    總結(jié):
    1.對(duì)事務(wù)配置進(jìn)行檢查,對(duì)復(fù)雜嵌套的事務(wù)邏輯必要的時(shí)候debug到spring源碼中確認(rèn)。
    2.定義統(tǒng)一異常類型
    3.同一個(gè)類調(diào)用自身方法,子方法的事務(wù)配置不起作用。解決方法見上一篇文章。
    http://m.tkk7.com/zyskm/archive/2011/11/11/363535.html

    作者: zyskm
    本文地址:
    http://m.tkk7.com/zyskm/archive/2011/11/30/365225.html

    posted on 2011-11-30 17:35 zyskm 閱讀(3278) 評(píng)論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲美女色在线欧洲美女| 亚洲综合日韩久久成人AV| 亚洲精品动漫在线| 91香蕉在线观看免费高清| 国产亚洲精品a在线观看| 亚洲精品视频免费观看| 国外亚洲成AV人片在线观看 | 中文字幕人成无码免费视频| 亚洲丝袜美腿视频| 成人午夜大片免费7777| 亚洲国产成+人+综合| 一级特黄a免费大片| 亚洲熟妇少妇任你躁在线观看无码 | 亚洲av中文无码乱人伦在线r▽| 本免费AV无码专区一区| 午夜宅男在线永久免费观看网| 在线综合亚洲中文精品| 日韩一区二区三区免费体验| 毛片亚洲AV无码精品国产午夜| 亚洲AV蜜桃永久无码精品| 91视频免费观看高清观看完整| 国产在线19禁免费观看国产| 一级黄色免费大片| 久久被窝电影亚洲爽爽爽 | 国产高潮久久免费观看| 亚洲成A人片在线观看WWW| 中文字幕免费高清视频| 亚洲中文字幕无码亚洲成A人片| 免费a级毛片大学生免费观看| 成在线人免费无码高潮喷水| 亚洲自偷自偷精品| 中文字幕不卡免费视频| 亚洲精品高清视频| 大陆一级毛片免费视频观看| jizz中国免费| 亚洲嫩草影院在线观看| 免费黄色福利视频| 曰批全过程免费视频观看免费软件 | 久久亚洲sm情趣捆绑调教| 在线精品免费视频| 黄网站免费在线观看|