摘要:中人為的創建出一個異常,測試回滾在中可以被判斷。手工拋出,作用有兩個,使用事務增強,對事務回滾。中可以捕獲該異常,并處理,例在前端顯示提示信息。例子結果說明事務增強可以通過進行事務增強。事務發生回滾時,可以判斷事務發生了回滾,并處理。
1 主要處理思路 1.1 思路1
事物回滾,一般拋異常,可以自己手寫一個異常,根據異常判斷。事物還是按照 spring 的之前的邏輯。只是,手工拋特定的異常。這樣你就可以捕獲這個異常給前臺用戶。
1.2 思路2方法捕獲異常拋出即可,記得方法定義必須拋出異常,否則框架捕獲不到,聲明式事物不起作用。
1.3 總結我認為上述思路在實現上是統一的。下面給出一個用偽代碼描述的例子。
MyException: public class MyException extends RuntimeException { public MyException(){ } } Action中: @Autowired public class XAction { @Autowired private XServicexService xService; public String AddXmethod(){ try { xService.addX (x); //將x存入數據庫 } catch (MyException e) { System.out.println("service層出異常了...."); //其它處理,例:加上需要在前端顯示的提示信息。 } } } xService中: @Service @Transactional(propagation=org.springframework.transaction.annotation.Propagation.REQUIRED) public class XService{ @Autowired private XDao xDao; public void addX (X x) throws MyException { xDao.addX(x); //人為的創建出一個異常,測試回滾在action中可以被判斷。 try { int a =10/0; } catch (Exceptione) { //手工拋出,作用有兩個, //1、使用spring事務增強,對事務回滾。 //2、action中可以捕獲該異常,并處理,例:在前端顯示提示信息。 throw new MyException(); } } }
例子結果說明:
1、事務增強可以通過SpringAOP進行事務增強。
2、事務發生回滾時,Action可以“判斷”事務發生了回滾,并處理。
http://www.jb51.net/article/3... (Spring事務管理只對出現運行期異常進行回滾改變默認方式)
http://www.cnblogs.com/0201zc...(spring 事務回滾)
http://blog.csdn.net/gaowenmi... (spring AOP的異常攔截)
http://www.cnblogs.com/zhuawa... (關于Spring事務回滾的問題)
https://www.oschina.net/quest... (spring的事務insert操作怎么判斷是否執行成功了還是回滾了)
濟南java技術交流群群主隱士的思路與百度用戶mahl8007的思路。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71590.html
摘要:和事務的關系關系型數據庫某些消息隊列等產品或中間件稱為事務性資源,因為它們本身支持事務,也能夠處理事務。事務的傳播特性,,,,,,強制要求要有一個物理事務。外圍事務不會被內部事務的回滾狀態影響。不支持當前事務。 Spring和事務的關系 關系型數據庫、某些消息隊列等產品或中間件稱為事務性資源,因為它們本身支持事務,也能夠處理事務。 Spring很顯然不是事務性資源,但是它可...
摘要:使用注解方式簡單模擬事務樣例說明數據源采用采用持久化采用事務注解環境搭建依賴提供的模塊鏈接驅動包配置類聲明式事務配置類,其中一定要開啟。 使用注解方式簡單模擬事務 樣例 說明 數據源采用c3p0 采用JdbcTemplate持久化 采用Spring事務注解 環境搭建 POM依賴 c3p0 c3p0 0.9.1.2 org.springfram...
摘要:事務的傳播行為當事務方法被另一個事務方法調用時,必須指定事務應該如何傳播。事務配置配置文件中關于事務配置總是由三個組成部分,分別是和代理機制這三部分,無論哪種配置方式,一般變化的只是代理機制這部分。 數據庫事務的隔離級別 數據庫事務的隔離級別有4個,由低到高依次為Read uncommitted 、Read committed 、Repeatable read 、Serializabl...
摘要:前言在接口中規定了種類型的事務傳播行為。事務傳播行為是框架獨有的事務增強特性,他不屬于的事務實際提供方數據庫行為。本文對七種事務傳播行為做詳細介紹,內容主要代碼示例的方式呈現。 前言 Spring在TransactionDefinition接口中規定了7種類型的事務傳播行為。事務傳播行為是Spring框架獨有的事務增強特性,他不屬于的事務實際提供方數據庫行為。這是Spring為我們提供...
閱讀 3702·2021-11-23 09:51
閱讀 1360·2021-11-10 14:35
閱讀 4008·2021-09-22 15:01
閱讀 1279·2021-08-19 11:12
閱讀 379·2019-08-30 15:53
閱讀 1690·2019-08-29 13:04
閱讀 3429·2019-08-29 12:52
閱讀 3055·2019-08-23 16:14