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

Spring異常捕獲且回滾事務解決方案

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

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

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

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

問題已解決:

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

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

配置來捕獲特定的異常并回滾

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

解決方案:

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

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

<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>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    全面解析SpringBoot文件上傳功能

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

    Java自動添加重寫的toString方法詳解

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

    Spring Boot應用上傳文件時報錯的原因及解決方案

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

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

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

    SpringBoot war包部署到Tomcat服務器

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

最新評論

甘孜县| 察隅县| 临猗县| 九台市| 南靖县| 商都县| 滕州市| 颍上县| 德安县| 道孚县| 华蓥市| 兰州市| 乌兰县| 余庆县| 时尚| 龙里县| 汝阳县| 桃源县| 韶关市| 牟定县| 大连市| 博罗县| 浦城县| 翁牛特旗| 长子县| 浮山县| 冷水江市| 积石山| 仙居县| 长丰县| 中牟县| 绵阳市| 崇信县| 阳信县| 宁武县| 建瓯市| 德格县| 阿荣旗| 高唐县| 广南县| 奉新县|