Spring事務(wù)管理

Spring事務(wù)管理

ID:38275488

大小:38.50 KB

頁數(shù):7頁

時(shí)間:2019-06-07

Spring事務(wù)管理_第1頁
Spring事務(wù)管理_第2頁
Spring事務(wù)管理_第3頁
Spring事務(wù)管理_第4頁
Spring事務(wù)管理_第5頁
資源描述:

《Spring事務(wù)管理》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Spring提供了一流的事務(wù)管理。在Spring中可以支持聲明式事務(wù)和編程式事務(wù)。本章主要目標(biāo)如下:1,Spring事務(wù)2,事務(wù)屬性3,事務(wù)管理器4,聲明式事務(wù)1.1Spring的事務(wù)事務(wù)管理在應(yīng)用程序中起著至關(guān)重要的作用:它是一系列任務(wù)的組成工作單元,在這個(gè)工作單元中,所有的任務(wù)必須同時(shí)執(zhí)行。它們只有二種可能執(zhí)行結(jié)果,要么所有任務(wù)全部執(zhí)行成功,要么所有任務(wù)全部執(zhí)行失敗。Spring中提供了豐富的事務(wù)管理功能,它們超過了EJB并且和EJB一樣支持聲明式事務(wù),重要的是Spring提供了致的事務(wù)管理,它有如下優(yōu)點(diǎn)。1,為不同的事務(wù)的AP

2、I提供一致的編程模式2,提供更簡單,更易地使用的編程式事務(wù)管理3,支持Spring聲明事務(wù)4,整合Spring對數(shù)據(jù)訪問的抽像1.2事務(wù)的ACID特性事務(wù)使用ACID特性來衡量事務(wù)的質(zhì)量。介紹如下:1,原子性事務(wù)必須是原子的,在事務(wù)結(jié)束的時(shí)候,事務(wù)中的所有任務(wù)必須全部成功完成,否則全部失敗,事務(wù)回滾到事務(wù)開始之間的狀態(tài)。2,一致性事務(wù)必須保證和數(shù)據(jù)庫的一致性,即數(shù)據(jù)庫中的所有數(shù)據(jù)和現(xiàn)實(shí)保持一致。如果事務(wù)失敗數(shù)據(jù)必須返回到事務(wù)執(zhí)行之前的狀態(tài),反之修改數(shù)據(jù)和現(xiàn)實(shí)的同步。3,隔離性隔離性是事務(wù)與事務(wù)之間的屏障,每個(gè)事務(wù)必須與其他事務(wù)的執(zhí)行

3、結(jié)果隔離開,直到該事務(wù)執(zhí)行完畢,它保證了事務(wù)的訪問的任何數(shù)據(jù)不會受其他事務(wù)執(zhí)行結(jié)果的影響。4,持久性如果事務(wù)成功執(zhí)行,無論系統(tǒng)發(fā)生任何情況,事務(wù)的持久性都必須保證事務(wù)的執(zhí)行結(jié)果是永久的。1.3事務(wù)之間的缺陷在事務(wù)處理中有違返A(chǔ)CID特性的3個(gè)問題:臟讀取,不可重復(fù)讀和幻讀行。如果存在多個(gè)并發(fā)事務(wù)在運(yùn)行,而這種事務(wù)操作了同一個(gè)數(shù)據(jù)來完成它們的任務(wù),就會導(dǎo)致3個(gè)問題的存生。要解決它們,就必須在事務(wù)之間定義合適的隔離級別。為保證事務(wù)的完整性,必須解決事務(wù)之間可能存在的3個(gè)問題。(1)臟讀取當(dāng)一個(gè)事務(wù)讀取了另一個(gè)事務(wù)尚未提交的更新,就叫臟讀

4、取。在另一個(gè)事務(wù)回滾的情況下,當(dāng)前事務(wù)所讀取的另一個(gè)事務(wù)的數(shù)據(jù)就是無效的。(2)不可重復(fù)讀取在一個(gè)事務(wù)中執(zhí)行多次同樣的查詢操作,但每次查詢的結(jié)果都不一樣,就叫做不可重復(fù)讀取,通常這種情況是由于數(shù)據(jù)在二次查詢之間被另一個(gè)并發(fā)的事務(wù)所修改。(3)幻影行這是對事務(wù)危害最小的一個(gè)問候,它類似不可重復(fù)讀取,也是一個(gè)事務(wù)的更新結(jié)果影響到另一個(gè)事務(wù)問題。但是它不僅影響另一個(gè)事務(wù)查詢結(jié)果,而且還會使查詢語句返回一些不同的行錄行。這3個(gè)問題危害程度依次為:臟讀取最大-->不可重復(fù)讀取-->幻影行最小。1.4事務(wù)的屬性本節(jié)主要介紹將事務(wù)策略應(yīng)用到方法的

5、屬性描述,其內(nèi)容包括事務(wù)的傳播行為,事務(wù)的隔離級別,事務(wù)的只讀和超時(shí)屬性。1,事務(wù)的傳播行為傳播行為是事務(wù)應(yīng)用于方法的邊界,它定義了事務(wù)的建立,暫停等行為屬性。在Spring中共有7種,EJBCMT共6種。*PROPAGATION_MANDATORY:規(guī)定了方法必須在事務(wù)中運(yùn)行,否則會拋出異常*PROPAGATION_NESTED:使方法運(yùn)行在嵌套事務(wù)中,否則這個(gè)屬性和PROPAGATION_REQUIRED屬性的義相同PROPAGATION_NEVER使當(dāng)前方法永遠(yuǎn)不在事務(wù)中運(yùn)行,否則拋出異常PROPAGATION_NOT_SUP

6、PORTED定義為當(dāng)前事務(wù)不支持的方法,在該方法運(yùn)行期間正在運(yùn)行的事務(wù)會被暫停*PROPAGATION_REQUIRED規(guī)定當(dāng)前的方法必須在事務(wù)中,如果沒有事務(wù)就創(chuàng)建一個(gè)新事務(wù),一個(gè)新事務(wù)和方法一同開始,隨著方法的返回或拋出異常而終止*PROPAGATION_REQUIRED_NEW當(dāng)前方法必須創(chuàng)建新的事務(wù)來運(yùn)行,如果現(xiàn)存的事務(wù)正在運(yùn)行就暫停它PROPAGATION_SUPPORTS規(guī)定當(dāng)前方法支持當(dāng)前事務(wù)處理,但如果沒有事務(wù)在運(yùn)行就使用非事務(wù)方法執(zhí)行以上定義Spring在事務(wù)中的傳播行為分別對應(yīng)EJB的事務(wù)CMT中的所有傳播行為,

7、其在PROPAGATION_NESTED是Spring在CMT之外定義的事務(wù)傳播行為。例如:PROPAGATION_REQUIRED,timeout_5,readOnlyPROPAGATION_REQUIREDPROPAGATION_REQUIRED2,事

8、務(wù)的隔離級別為解決事務(wù)之間的3個(gè)缺陷,必須在事務(wù)之間建立隔離關(guān)系來保證事務(wù)的完整性。ISOLATION_DEFAULT使用數(shù)據(jù)庫默認(rèn)的隔離級別ISOLATION_COMMITTED允許讀取其他并發(fā)事務(wù)已經(jīng)提交的更新(防此臟讀)ISOL

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。