最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring異常捕獲且回滾事務(wù)解決方案

 更新時(shí)間:2020年06月02日 14:57:14   作者:學(xué)習(xí)園  
這篇文章主要介紹了Spring異常捕獲且回滾事務(wù)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

默認(rèn)spring只在發(fā)生未被捕獲的runtimeexcetpion時(shí)才回滾。

最笨的辦法:代碼級(jí)控制:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

為何在aop advitor中配置rollba-for=“java.lang.Exception”異常時(shí)不回滾呢?

問(wèn)題已解決:

原理:spring aop 異常捕獲原理:被攔截的方法需顯式拋出異常,并不能經(jīng)任何處理,這樣aop代理才能捕獲到方法的異常,才能進(jìn)行回滾,默認(rèn)情況下aop只捕獲runtimeexception的異常,但可以通過(guò)

<tx:method name="upd*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>

配置來(lái)捕獲特定的異常并回滾

換句話說(shuō)在service的方法中不使用try catch 或者在catch中最后加上throw new runtimeexcetpion(),這樣程序異常時(shí)才能被aop捕獲進(jìn)而回滾

解決方案:

方案1.例如service層處理事務(wù),那么service中的方法中不做異常捕獲,或者在catch語(yǔ)句中最后增加throw new RuntimeException()語(yǔ)句,以便讓aop捕獲異常再去回滾,并且在service上層(webservice客戶端,view層action)要繼續(xù)捕獲這個(gè)異常并處理

方案2.在service層方法的catch語(yǔ)句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();語(yǔ)句,手動(dòng)回滾,這樣上層就無(wú)需去處理異常(現(xiàn)在項(xiàng)目的做法)

<bean id="transactionManager"
 class="org.springframework.orm.hibernate3.HibernateTransactionManager">
 <property name="sessionFactory" ref="sessionFactory" />
</bean>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
 <tx:attributes>
  <tx:method name="add*" propagation="REQUIRED" />
  <tx:method name="upd*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
  <tx:method name="del*" propagation="REQUIRED" />
  <tx:method name="*" propagation="SUPPORTS" />
 </tx:attributes>
</tx:advice>

<aop:config>
 <aop:pointcut id="canyin" expression="execution(* com.laphone.base.baseservice.*.*(..)) ||execution(* com.laphone.canyin.*.service.*.*(..)) || execution(* com.laphone.canyin.*.*.service.*.*(..))"/>
 <aop:advisor advice-ref="txAdvice" pointcut-ref="canyin" />
</aop:config>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Feign如何使用protobuf的類作為參數(shù)調(diào)用

    Feign如何使用protobuf的類作為參數(shù)調(diào)用

    這篇文章主要介紹了Feign如何使用protobuf的類作為參數(shù)調(diào)用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 深入探究Java原型模式的魅力

    深入探究Java原型模式的魅力

    Java原型模式是一種創(chuàng)建型設(shè)計(jì)模式,它通過(guò)復(fù)制現(xiàn)有對(duì)象的實(shí)例來(lái)創(chuàng)建新的對(duì)象實(shí)例,在本篇博客中,我們將詳細(xì)介紹Java原型模式的原理、實(shí)現(xiàn)方式、優(yōu)缺點(diǎn)以及適用場(chǎng)景等方面,需要的朋友可以參考下
    2023-05-05
  • AsyncHttpClient?ChannelPool線程池頻道池源碼流程解析

    AsyncHttpClient?ChannelPool線程池頻道池源碼流程解析

    這篇文章主要為大家介紹了AsyncHttpClient ChannelPool線程池頻道池源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • IDEA2023.1.3安裝教程及下載(圖文)

    IDEA2023.1.3安裝教程及下載(圖文)

    最新變化是在IDEA?2023.1中,對(duì)新UI做出了大量改進(jìn),本文主要介紹了IDEA2023.1.3安裝教程及下載,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • JavaSE實(shí)戰(zhàn)之酒店訂房系統(tǒng)的實(shí)現(xiàn)

    JavaSE實(shí)戰(zhàn)之酒店訂房系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何利用JavaSE實(shí)現(xiàn)酒店訂房系統(tǒng),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaSE開(kāi)發(fā)有一定的幫助,需要的可以參考一下
    2022-07-07
  • 全面解析SpringBoot文件上傳功能

    全面解析SpringBoot文件上傳功能

    這篇文章主要為大家全面解析SpringBoot文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java自動(dòng)添加重寫(xiě)的toString方法詳解

    Java自動(dòng)添加重寫(xiě)的toString方法詳解

    在本篇文章里小編給大家整理了關(guān)于Java自動(dòng)添加重寫(xiě)的toString方法總結(jié),需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • Spring Boot應(yīng)用上傳文件時(shí)報(bào)錯(cuò)的原因及解決方案

    Spring Boot應(yīng)用上傳文件時(shí)報(bào)錯(cuò)的原因及解決方案

    這篇文章主要介紹了Spring Boot應(yīng)用上傳文件時(shí)報(bào)錯(cuò)的原因及解決方案,幫助大家更好的理解和學(xué)習(xí)使用spring boot框架,感興趣的朋友可以了解下
    2021-02-02
  • Java實(shí)現(xiàn)修改PDF文件MD5值且保持內(nèi)容不變

    Java實(shí)現(xiàn)修改PDF文件MD5值且保持內(nèi)容不變

    在某些場(chǎng)景中,我們可能需要改變PDF文件的MD5值,而又不希望改變文件的可視內(nèi)容,本文詳細(xì)介紹了如何實(shí)現(xiàn)這一目標(biāo),并提供了具體的Java實(shí)現(xiàn)示例,需要的可以參考下
    2023-10-10
  • SpringBoot war包部署到Tomcat服務(wù)器

    SpringBoot war包部署到Tomcat服務(wù)器

    這篇文章主要介紹了SpringBoot war包部署到Tomcat服務(wù)器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03

最新評(píng)論

新乐市| 佛学| 通榆县| 丹凤县| 北辰区| 宜阳县| 尼玛县| 中宁县| 庆阳市| 新和县| 麟游县| 峨边| 新乐市| 余庆县| 云阳县| 广元市| 普宁市| 浦县| 华容县| 长葛市| 顺昌县| 姜堰市| 扎兰屯市| 桦川县| 浮山县| 绥德县| 江北区| 深泽县| 贵港市| 怀安县| 南华县| 威海市| 津南区| 启东市| 北川| 汨罗市| 石楼县| 丰都县| 安西县| 武清区| 赤峰市|