首先,我們配置了一個 TransactionInterceptor 來定義相關的事務規則,他有兩個主要的屬性:一個是 transactionManager,用來指定一個事務管理器,并將具體事務相關的操作委托給它;另一個是 Properties 類型的 transactionAttributes 屬性,它主要用來定義事務規則,該屬性的每一個鍵值對中,鍵指定的是方法名,方法名可以使用通配符,而值就表示相應方法的所應用的事務屬性。 導致回滾的異常是指,當事務中拋出這些類型的異常時,事務將回滾。必須在每一個異常的名字前面加上“-”。異常的名字可以是類名的全部或者部分,比如“-RuntimeException”、“-tion”等等。 基于 TransactionProxy... 的聲明式事務管理 如此一來,配置文件與先前相比簡化了很多。我們把這種配置方式稱為 Spring 經典的聲明式事務管理。相信在早期使用 Spring 的開發人員對這種配置聲明式事務的方式一定非常熟悉。 如果默認的事務屬性就能滿足要求,那么代碼簡化為如清單 11 所示: 清單12. 基于 @Transactional 的事務管理示例配置文件 如果不是對遺留代碼進行維護,則不建議再使用基于 TransactionInterceptor 以及基于TransactionProxyFactoryBean 的聲明式事務管理方式,但是,學習這兩種方式非常有利于對底層實現的理解。
雖然上面共列舉了四種聲明式事務管理方式,但是這樣的劃分只是為了便于理解,其實后臺的實現方式是一樣的,只是用戶使用的方式不同而已。 結束語 本教程的知識點大致總結如下: 基于 TransactionDefinition、PlatformTransactionManager、TransactionStatus 編程式事務管理是 Spring 提供的最原始的方式,通常我們不會這么寫,但是了解這種方式對理解 Spring 事務管理的本質有很大作用。 基于 TransactionTemplate 的編程式事務管理是對上一種方式的封裝,使得編碼更簡單、清晰。 基于 TransactionInterceptor 的聲明式事務是 Spring 聲明式事務的基礎,通常也不建議使用這種方式,但是與前面一樣,了解這種方式對理解 Spring 聲明式事務有很大作用。 基于 TransactionProxyFactoryBean 的聲明式事務是上中方式的改進版本,簡化的配置文件的書寫,這是 Spring 早期推薦的聲明式事務管理方式,但是在 Spring 2.0 中已經不推薦了。 基于 <tx> 和 <aop> 命名空間的聲明式事務管理是目前推薦的方式,其最大特點是與 Spring AOP 結合緊密,可以充分利用切點表達式的強大支持,使得管理事務更加靈活。 基于 @Transactional 的方式將聲明式事務管理簡化到了極致。開發人員只需在配置文件中加上一行啟用相關后處理 Bean 的配置,然后在需要實施事務管理的方法或者類上使用 @Transactional 指定事務規則即可實現事務管理,而且功能也不必其他方式遜色 |
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
30 | 31 | 1 | 2 | 3 | 4 | 5 | |||
6 | 7 | 8 | 9 | 10 | 11 | 12 | |||
13 | 14 | 15 | 16 | 17 | 18 | 19 | |||
20 | 21 | 22 | 23 | 24 | 25 | 26 | |||
27 | 28 | 29 | 30 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
常用鏈接
留言簿
隨筆檔案
- 2011年6月 (1)
- 2010年9月 (1)
- 2010年8月 (1)
- 2010年6月 (2)
- 2010年3月 (2)
- 2010年2月 (1)
- 2010年1月 (1)
- 2009年12月 (4)
- 2009年11月 (1)
- 2009年10月 (11)
- 2009年9月 (13)
- 2009年8月 (3)
- 2009年7月 (19)
- 2009年6月 (1)
文章檔案
相冊
搜索
最新評論

- 1.?re: 轉:CSS行高與行對齊精解:line-height 和 vertical-align (圖文)
- 請問這是那本書里的
- --試試
- 2.?re: 轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題
- 贊……………………
- --枷鎖
- 3.?re: 轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題[未登錄]
- 是對的,解決了 強
- --liu
- 4.?re: 轉:spring事務配置方法(TransactionProxyFactoryBean)
- 超級感謝
- --mgz
- 5.?re: 轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題
- 頂,樓主真是強啊
- --chenj
- 6.?re: java.lang.UnsupportedClassVersionError: Unsupported major.minor version 49.0的錯誤 [轉] [未登錄]
- 樓主解釋的真詳細,寫的很容易理解。感謝。
- --過客
- 7.?re: 轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題
- 好貼必須頂!
- --jspxcgy007
- 8.?re: 轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題
-
好文章,就是沒有理由的頂
感激不盡.... - --王成飛
- 9.?re: 轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題
-
真是太感謝了……
弄了半天,感覺不盡…… - --楚門
閱讀排行榜
- 1.? 轉:在web.xml中通過contextConfigLocation配置spring (16861)
- 2.?轉:jsp中使用java.net.URLEncoder.encode()傳送字符編碼(16152)
- 3.?java.lang.UnsupportedClassVersionError: Unsupported major.minor version 49.0的錯誤 [轉] (12923)
- 4.?轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題(9747)
- 5.?轉:struts2 異常處理總結 (5432)
- 6.?轉:CSS行高與行對齊精解:line-height 和 vertical-align (圖文)(2345)
- 7.?轉:spring事務配置方法(TransactionProxyFactoryBean) (1820)
- 8.?轉:全面分析 Spring 的編程式事務管理及聲明式事務管理(2)(1637)
- 9.?轉:OGNL入門 及 理解(1498)
- 10.?轉:正確理解Hibernate Inverse(1462)
- 11.?轉:Oracle中插入圖片并顯示(用BLOB類型) (1460)
- 12.?轉:Java批量下載生成zip文件(1312)
- 13.?樣式表打造不規則表格(1292)
- 14.?轉:OCX和DLL的區別(1270)
- 15.?使用Axis開發Java的WebService(一)(1203)
- 16.?轉:hibernate createSQLQuery(1114)
- 17.?轉:全面分析 Spring 的編程式事務管理及聲明式事務管理(1)(986)
- 18.?(轉)Oracle 動態sql創建ORACLE存儲過程(913)
- 19.?轉:Java處理Zip文件(867)
- 20.?【轉】Hibernate3一級緩存和二級緩存的理解(865)
- 21.?(轉 自 Javaeye chnic 童鞋)利用AXIS開發Webservice(三) —— 如何傳遞JavaBean和你的對象(808)
- 22.?【轉】Struts2.0 Spring iBATIS整合(734)
- 23.?轉:JSON與JAVA數據的轉換(698)
- 24.?轉:Struts2 + Hibernate開發筆記(一,二) 原文:http://www.itpub.net/viewthread.php?tid=851635(658)
- 25.?轉 Struts 2 標簽中 # % 的作用(636)
- 26.?(轉 Javaeye chnic 童鞋)利用AXIS開發Webservice(四) —— 如何拋出自定義異常 (616)
- 27.?Spring中Bean的生命周期(轉)1(613)
- 28.?轉:Struts2頁面開發中常用標簽使用說明 (608)
- 29.?(轉)HTTP協議中POST、GET、HEAD等參數詳解(591)
- 30.? web.xml配置 DWR 調試(563)
- 31.?(轉自Javaeye chnic 童鞋)利用AXIS開發Webservice(五) —— 如何傳遞文件(480)
- 32.?(轉 自Javaeye chnic 童鞋)利用AXIS開發Webservice(二) —— WSDD的一些高級特性 (451)
- 33.?轉:Java 圖形用戶界面設計(446)
評論排行榜
- 1.?轉:Could not commit Hibernate 問題,spring 事物 提交前session關閉問題(6)
- 2.?轉:spring事務配置方法(TransactionProxyFactoryBean) (1)
- 3.?轉:CSS行高與行對齊精解:line-height 和 vertical-align (圖文)(1)
- 4.?java.lang.UnsupportedClassVersionError: Unsupported major.minor version 49.0的錯誤 [轉] (1)
- 5.?轉:JNLP介紹 (0)
- 6.?轉:行高line-height屬性(0)
- 7.?轉:行高line-height屬性(0)
- 8.?樣式表打造不規則表格(0)
- 9.?轉:正確理解Hibernate Inverse(0)
- 10.?(轉)JSP 中 pageEncoding charset 的區別(0)
- 11.?轉 JSP頁面編碼問題研究(0)
- 12.?(轉)HTTP協議中POST、GET、HEAD等參數詳解(0)
- 13.?(轉)Oracle 動態sql創建ORACLE存儲過程(0)
- 14.?關于Java文件路徑問題(轉載)(0)
- 15.?關于Java文件路徑問題(轉載)(0)
- 16.?DWR中各種java方法的調用(轉)(0)
- 17.? web.xml配置 DWR 調試(0)
- 18.?(轉自Javaeye chnic 童鞋)利用AXIS開發Webservice(五) —— 如何傳遞文件(0)
- 19.?(轉 Javaeye chnic 童鞋)利用AXIS開發Webservice(四) —— 如何拋出自定義異常 (0)
- 20.?(轉 自 Javaeye chnic 童鞋)利用AXIS開發Webservice(三) —— 如何傳遞JavaBean和你的對象(0)
- 21.?(轉 自Javaeye chnic 童鞋)利用AXIS開發Webservice(二) —— WSDD的一些高級特性 (0)
- 22.?log4j配置簡要說明 (0)
- 23.?淺談Java開源XML工具包dom4j(收藏自51cto.com)(0)
- 24.?使用Axis開發Java的WebService(一)(0)
- 25.?轉:JSON與JAVA數據的轉換(0)
- 26.?轉:動態鏈接庫簡介 (0)
- 27.?轉:OCX和DLL的區別(0)
- 28.?(轉)XML的四種解析器原理及性能比較(0)
- 29.?轉:jsp中使用java.net.URLEncoder.encode()傳送字符編碼(0)
- 30.?轉:Oracle中插入圖片并顯示(用BLOB類型) (0)
- 31.?轉:高性能 高彈性JSP和Servlet性能優化(0)
- 32.?轉:struts2 標簽簡要(0)
- 33.?轉:Java 圖形用戶界面設計(0)