開(kāi)始之前 也許你會(huì)奇怪,為什么接口只提供了獲取屬性的方法,而沒(méi)有提供相關(guān)設(shè)置屬性的方法。其實(shí)道理很簡(jiǎn)單,事務(wù)屬性的設(shè)置完全是程序員控制的,因此程序員可以自定義任何設(shè)置屬性的方法,而且保存屬性的字段也沒(méi)有任何要求。唯一的要求的是,Spring 進(jìn)行事務(wù)操作的時(shí)候,通過(guò)調(diào)用以上接口提供的方法必須能夠返回事務(wù)相關(guān)的屬性取值。 事務(wù)傳播行為 事務(wù)超時(shí) TransactionDef... TransactionStatus 相應(yīng)的配置文件如清單5所示: 清單6. 基于 TransactionTemplate 的事務(wù)管理示例代碼 根據(jù)默認(rèn)規(guī)則,如果在執(zhí)行回調(diào)方法的過(guò)程中拋出了未檢查異常,或者顯式調(diào)用了TransacationStatus.setRollbackOnly() 方法,則回滾事務(wù);如果事務(wù)執(zhí)行完成或者拋出了 checked 類型的異常,則提交事務(wù)。 通常情況下,筆者強(qiáng)烈建議在開(kāi)發(fā)中使用聲明式事務(wù),不僅因?yàn)槠浜?jiǎn)單,更主要是因?yàn)檫@樣使得純業(yè)務(wù)代碼不被污染,極大方便后期的代碼維護(hù)。
和編程式事務(wù)相比,聲明式事務(wù)唯一不足地方是,后者的最細(xì)粒度只能作用到方法級(jí)別,無(wú)法做到像編程式事務(wù)那樣可以作用到代碼塊級(jí)別。但是即便有這樣的需求,也存在很多變通的方法,比如,可以將需要進(jìn)行事務(wù)管理的代碼塊**為方法等等。 下面就來(lái)看看 Spring 為我們提供的聲明式事務(wù)管理功能。 基于 TransactionInter... 的聲明式事務(wù)管理 最初,Spring 提供了 TransactionInterceptor 類來(lái)實(shí)施聲明式事務(wù)管理功能。先看清單8的配置文件: 清單 8. 基于 TransactionInterceptor 的事務(wù)管理示例配置文件 <beans...> ...... <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributes"> <props> <prop key="transfer">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="bankServiceTarget" class="footmark.spring.core.tx.declare.origin.BankServiceImpl"> <property name="bankDao" ref="bankDao"/> </bean> <bean id="bankService" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="target" ref="bankServiceTarget"/> <property name="interceptorNames"> <list> <idref bean="transactionInterceptor"/> </list> </property> </bean> ...... </beans> |
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
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)問(wèn)這是那本書(shū)里的
- --試試
- 2.?re: 轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wèn)題
- 贊……………………
- --枷鎖
- 3.?re: 轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wèn)題[未登錄](méi)
- 是對(duì)的,解決了 強(qiáng)
- --liu
- 4.?re: 轉(zhuǎn):spring事務(wù)配置方法(TransactionProxyFactoryBean)
- 超級(jí)感謝
- --mgz
- 5.?re: 轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wèn)題
- 頂,樓主真是強(qiáng)啊
- --chenj
- 6.?re: java.lang.UnsupportedClassVersionError: Unsupported major.minor version 49.0的錯(cuò)誤 [轉(zhuǎn)] [未登錄](méi)
- 樓主解釋的真詳細(xì),寫的很容易理解。感謝。
- --過(guò)客
- 7.?re: 轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wèn)題
- 好貼必須頂!
- --jspxcgy007
- 8.?re: 轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wèn)題
-
好文章,就是沒(méi)有理由的頂
感激不盡.... - --王成飛
- 9.?re: 轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wèn)題
-
真是太感謝了……
弄了半天,感覺(jué)不盡…… - --楚門
閱讀排行榜
- 1.? 轉(zhuǎn):在web.xml中通過(guò)contextConfigLocation配置spring (16866)
- 2.?轉(zhuǎn):jsp中使用java.net.URLEncoder.encode()傳送字符編碼(16161)
- 3.?java.lang.UnsupportedClassVersionError: Unsupported major.minor version 49.0的錯(cuò)誤 [轉(zhuǎn)] (12928)
- 4.?轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wèn)題(9754)
- 5.?轉(zhuǎn):struts2 異常處理總結(jié) (5436)
- 6.?轉(zhuǎn):CSS行高與行對(duì)齊精解:line-height 和 vertical-align (圖文)(2350)
- 7.?轉(zhuǎn):spring事務(wù)配置方法(TransactionProxyFactoryBean) (1824)
- 8.?轉(zhuǎn):全面分析 Spring 的編程式事務(wù)管理及聲明式事務(wù)管理(2)(1640)
- 9.?轉(zhuǎn):OGNL入門 及 理解(1502)
- 10.?轉(zhuǎn):正確理解Hibernate Inverse(1465)
- 11.?轉(zhuǎn):Oracle中插入圖片并顯示(用BLOB類型) (1463)
- 12.?轉(zhuǎn):Java批量下載生成zip文件(1314)
- 13.?樣式表打造不規(guī)則表格(1297)
- 14.?轉(zhuǎn):OCX和DLL的區(qū)別(1277)
- 15.?使用Axis開(kāi)發(fā)Java的WebService(一)(1206)
- 16.?轉(zhuǎn):hibernate createSQLQuery(1119)
- 17.?轉(zhuǎn):全面分析 Spring 的編程式事務(wù)管理及聲明式事務(wù)管理(1)(990)
- 18.?(轉(zhuǎn))Oracle 動(dòng)態(tài)sql創(chuàng)建ORACLE存儲(chǔ)過(guò)程(915)
- 19.?轉(zhuǎn):Java處理Zip文件(870)
- 20.?【轉(zhuǎn)】Hibernate3一級(jí)緩存和二級(jí)緩存的理解(868)
- 21.?(轉(zhuǎn) 自 Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(三) —— 如何傳遞JavaBean和你的對(duì)象(811)
- 22.?【轉(zhuǎn)】Struts2.0 Spring iBATIS整合(738)
- 23.?轉(zhuǎn):JSON與JAVA數(shù)據(jù)的轉(zhuǎn)換(702)
- 24.?轉(zhuǎn):Struts2 + Hibernate開(kāi)發(fā)筆記(一,二) 原文:http://www.itpub.net/viewthread.php?tid=851635(662)
- 25.?轉(zhuǎn) Struts 2 標(biāo)簽中 # % 的作用(639)
- 26.?(轉(zhuǎn) Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(四) —— 如何拋出自定義異常 (619)
- 27.?Spring中Bean的生命周期(轉(zhuǎn))1(616)
- 28.?轉(zhuǎn):Struts2頁(yè)面開(kāi)發(fā)中常用標(biāo)簽使用說(shuō)明 (612)
- 29.?(轉(zhuǎn))HTTP協(xié)議中POST、GET、HEAD等參數(shù)詳解(594)
- 30.? web.xml配置 DWR 調(diào)試(564)
- 31.?(轉(zhuǎn)自Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(五) —— 如何傳遞文件(485)
- 32.?(轉(zhuǎn) 自Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(二) —— WSDD的一些高級(jí)特性 (455)
- 33.?轉(zhuǎn):Java 圖形用戶界面設(shè)計(jì)(450)
評(píng)論排行榜
- 1.?轉(zhuǎn):Could not commit Hibernate 問(wèn)題,spring 事物 提交前session關(guān)閉問(wè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頁(yè)面編碼問(wèn)題研究(0)
- 12.?(轉(zhuǎn))HTTP協(xié)議中POST、GET、HEAD等參數(shù)詳解(0)
- 13.?(轉(zhuǎn))Oracle 動(dòng)態(tài)sql創(chuàng)建ORACLE存儲(chǔ)過(guò)程(0)
- 14.?關(guān)于Java文件路徑問(wèn)題(轉(zhuǎn)載)(0)
- 15.?關(guān)于Java文件路徑問(wèn)題(轉(zhuǎn)載)(0)
- 16.?DWR中各種java方法的調(diào)用(轉(zhuǎn))(0)
- 17.? web.xml配置 DWR 調(diào)試(0)
- 18.?(轉(zhuǎn)自Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(五) —— 如何傳遞文件(0)
- 19.?(轉(zhuǎn) Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(四) —— 如何拋出自定義異常 (0)
- 20.?(轉(zhuǎn) 自 Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(三) —— 如何傳遞JavaBean和你的對(duì)象(0)
- 21.?(轉(zhuǎn) 自Javaeye chnic 童鞋)利用AXIS開(kāi)發(fā)Webservice(二) —— WSDD的一些高級(jí)特性 (0)
- 22.?log4j配置簡(jiǎn)要說(shuō)明 (0)
- 23.?淺談Java開(kāi)源XML工具包dom4j(收藏自51cto.com)(0)
- 24.?使用Axis開(kāi)發(fā)Java的WebService(一)(0)
- 25.?轉(zhuǎn):JSON與JAVA數(shù)據(jù)的轉(zhuǎn)換(0)
- 26.?轉(zhuǎn):動(dòng)態(tài)鏈接庫(kù)簡(jiǎn)介 (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)簽簡(jiǎn)要(0)
- 33.?轉(zhuǎn):Java 圖形用戶界面設(shè)計(jì)(0)