首先,我們配置了一個(gè) TransactionInterceptor 來定義相關(guān)的事務(wù)規(guī)則,他有兩個(gè)主要的屬性:一個(gè)是 transactionManager,用來指定一個(gè)事務(wù)管理器,并將具體事務(wù)相關(guān)的操作委托給它;另一個(gè)是 Properties 類型的 transactionAttributes 屬性,它主要用來定義事務(wù)規(guī)則,該屬性的每一個(gè)鍵值對(duì)中,鍵指定的是方法名,方法名可以使用通配符,而值就表示相應(yīng)方法的所應(yīng)用的事務(wù)屬性。 導(dǎo)致回滾的異常是指,當(dāng)事務(wù)中拋出這些類型的異常時(shí),事務(wù)將回滾。必須在每一個(gè)異常的名字前面加上“-”。異常的名字可以是類名的全部或者部分,比如“-RuntimeException”、“-tion”等等。 基于 TransactionProxy... 的聲明式事務(wù)管理 如此一來,配置文件與先前相比簡化了很多。我們把這種配置方式稱為 Spring 經(jīng)典的聲明式事務(wù)管理。相信在早期使用 Spring 的開發(fā)人員對(duì)這種配置聲明式事務(wù)的方式一定非常熟悉。 如果默認(rèn)的事務(wù)屬性就能滿足要求,那么代碼簡化為如清單 11 所示: 清單12. 基于 @Transactional 的事務(wù)管理示例配置文件 如果不是對(duì)遺留代碼進(jìn)行維護(hù),則不建議再使用基于 TransactionInterceptor 以及基于TransactionProxyFactoryBean 的聲明式事務(wù)管理方式,但是,學(xué)習(xí)這兩種方式非常有利于對(duì)底層實(shí)現(xiàn)的理解。
雖然上面共列舉了四種聲明式事務(wù)管理方式,但是這樣的劃分只是為了便于理解,其實(shí)后臺(tái)的實(shí)現(xiàn)方式是一樣的,只是用戶使用的方式不同而已。 結(jié)束語 本教程的知識(shí)點(diǎn)大致總結(jié)如下: 基于 TransactionDefinition、PlatformTransactionManager、TransactionStatus 編程式事務(wù)管理是 Spring 提供的最原始的方式,通常我們不會(huì)這么寫,但是了解這種方式對(duì)理解 Spring 事務(wù)管理的本質(zhì)有很大作用。 基于 TransactionTemplate 的編程式事務(wù)管理是對(duì)上一種方式的封裝,使得編碼更簡單、清晰。 基于 TransactionInterceptor 的聲明式事務(wù)是 Spring 聲明式事務(wù)的基礎(chǔ),通常也不建議使用這種方式,但是與前面一樣,了解這種方式對(duì)理解 Spring 聲明式事務(wù)有很大作用。 基于 TransactionProxyFactoryBean 的聲明式事務(wù)是上中方式的改進(jìn)版本,簡化的配置文件的書寫,這是 Spring 早期推薦的聲明式事務(wù)管理方式,但是在 Spring 2.0 中已經(jīng)不推薦了。 基于 <tx> 和 <aop> 命名空間的聲明式事務(wù)管理是目前推薦的方式,其最大特點(diǎn)是與 Spring AOP 結(jié)合緊密,可以充分利用切點(diǎn)表達(dá)式的強(qiáng)大支持,使得管理事務(wù)更加靈活。 基于 @Transactional 的方式將聲明式事務(wù)管理簡化到了極致。開發(fā)人員只需在配置文件中加上一行啟用相關(guān)后處理 Bean 的配置,然后在需要實(shí)施事務(wù)管理的方法或者類上使用 @Transactional 指定事務(wù)規(guī)則即可實(shí)現(xiàn)事務(wù)管理,而且功能也不必其他方式遜色 |
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
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)
文章檔案
相冊(cè)
搜索
最新評(píng)論

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