spring的傳播屬性和隔離級(jí)別

在Spring中博杖,主要是通過(guò)AOP來(lái)完成聲明式的事務(wù)管理。要了解Spring對(duì)事務(wù)的支持栋操,首先要了解事務(wù)的屬性茂嗓。在Spring中事務(wù)屬性主要分以下幾方面:

傳播行為(Propagation behavior)

Propagation:key屬性確定代理應(yīng)該給哪個(gè)方法增加事務(wù)行為蕊肥。這樣的屬性最重要的部份是傳播行為滑潘。有以下選項(xiàng)可供使用:

(1)PROPAGATION_REQUIRED–支持當(dāng)前事務(wù)诗舰,如果當(dāng)前沒(méi)有事務(wù)蔓罚,就新建一個(gè)事務(wù)。這是最常見(jiàn)的選擇荠耽。

(2)PROPAGATION_SUPPORTS–支持當(dāng)前事務(wù)钩骇,如果當(dāng)前沒(méi)有事務(wù),就以非事務(wù)方式執(zhí)行铝量。

(3)PROPAGATION_MANDATORY–支持當(dāng)前事務(wù)倘屹,如果當(dāng)前沒(méi)有事務(wù),就拋出異常慢叨。

(4)PROPAGATION_REQUIRES_NEW–新建事務(wù)纽匙,如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起拍谐。

(5)PROPAGATION_NOT_SUPPORTED–以非事務(wù)方式執(zhí)行操作烛缔,如果當(dāng)前存在事務(wù)馏段,就把當(dāng)前事務(wù)掛起。

(6)PROPAGATION_NEVER–以非事務(wù)方式執(zhí)行践瓷,如果當(dāng)前存在事務(wù)院喜,則拋出異常。

(7)PROPAGATION_NESTED:在一個(gè)嵌入的事務(wù)中進(jìn)行晕翠。

1喷舀、PROPAGATION_REQUIRED加入當(dāng)前正要執(zhí)行的事務(wù)不在另外一個(gè)事務(wù)里,那么就起一個(gè)新的事務(wù)崖面,比如說(shuō)元咙,ServiceB.methodB的事務(wù)級(jí)別定義為PROPAGATION_REQUIRED,那么由于執(zhí)行ServiceA.methodA的時(shí)候,ServiceA.methodA已經(jīng)起了事務(wù)巫员,這時(shí)調(diào)用ServiceB.methodB,ServiceB.methodB看到自己已經(jīng)運(yùn)行在ServiceA.methodA的事務(wù)內(nèi)部甲棍,就不再起新的事務(wù)简识。而假如ServiceA.methodA運(yùn)行的時(shí)候發(fā)現(xiàn)自己沒(méi)有在事務(wù)中,他就會(huì)為自己分配一個(gè)事務(wù)感猛。這樣七扰,在ServiceA.methodA或者在ServiceB.methodB內(nèi)的任何地方出現(xiàn)異常,事務(wù)都會(huì)被回滾陪白。即使ServiceB.methodB的事務(wù)已經(jīng)被提交颈走,但是ServiceA.methodA在接下來(lái)fail要回滾,ServiceB.methodB也要回滾咱士。

2立由、PROPAGATION_SUPPORTS?

如果當(dāng)前在事務(wù)中,即以事務(wù)的形式運(yùn)行序厉,如果當(dāng)前不再一個(gè)事務(wù)中锐膜,那么就以非事務(wù)的形式運(yùn)行。

3弛房、PROPAGATION_MANDATORY?

必須在一個(gè)事務(wù)中運(yùn)行道盏。也就是說(shuō),他只能被一個(gè)父事務(wù)調(diào)用文捶。否則荷逞,他就要拋出異常。

4粹排、PROPAGATION_REQUIRES_NEW?

這個(gè)就比較繞口了种远。 比如我們?cè)O(shè)計(jì)ServiceA.methodA的事務(wù)級(jí)別為PROPAGATION_REQUIRED,ServiceB.methodB的事務(wù)級(jí)別為PROPAGATION_REQUIRES_NEW恨搓,那么當(dāng)執(zhí)行到ServiceB.methodB的時(shí)候院促,ServiceA.methodA所在的事務(wù)就會(huì)掛起筏养,ServiceB.methodB會(huì)起一個(gè)新的事務(wù),等待ServiceB.methodB的事務(wù)完成以后常拓,他才繼續(xù)執(zhí)行渐溶。他與PROPAGATION_REQUIRED 的事務(wù)區(qū)別在于事務(wù)的回滾程度了。因?yàn)镾erviceB.methodB是新起一個(gè)事務(wù)弄抬,那么就是存在兩個(gè)不同的事務(wù)茎辐。如果ServiceB.methodB已經(jīng)提交,那么ServiceA.methodA失敗回滾掂恕,ServiceB.methodB是不會(huì)回滾的拖陆。如果ServiceB.methodB失敗回滾,如果他拋出的異常被ServiceA.methodA捕獲懊亡,ServiceA.methodA事務(wù)仍然可能提交依啰。

5、 PROPAGATION_NOT_SUPPORTED?

當(dāng)前不支持事務(wù)店枣。比如ServiceA.methodA的事務(wù)級(jí)別是PROPAGATION_REQUIRED 速警,而ServiceB.methodB的事務(wù)級(jí)別是PROPAGATION_NOT_SUPPORTED ,那么當(dāng)執(zhí)行到ServiceB.methodB時(shí)鸯两,ServiceA.methodA的事務(wù)掛起闷旧,而他以非事務(wù)的狀態(tài)運(yùn)行完,再繼續(xù)ServiceA.methodA的事務(wù)钧唐。

6忙灼、PROPAGATION_NEVER?

不能在事務(wù)中運(yùn)行。假設(shè)ServiceA.methodA的事務(wù)級(jí)別是PROPAGATION_REQUIRED钝侠,而ServiceB.methodB的事務(wù)級(jí)別是PROPAGATION_NEVER 该园,那么ServiceB.methodB就要拋出異常了。

7机错、 PROPAGATION_NESTED?

理解Nested的關(guān)鍵是savepoint爬范。他與PROPAGATION_REQUIRES_NEW的區(qū)別是,PROPAGATION_REQUIRES_NEW另起一個(gè)事務(wù)弱匪,將會(huì)與他的父事務(wù)相互獨(dú)立青瀑,而Nested的事務(wù)和他的父事務(wù)是相依的,他的提交是要等和他的父事務(wù)一塊提交的萧诫。也就是說(shuō)斥难,如果父事務(wù)最后回滾,他也要回滾的帘饶。而Nested事務(wù)的好處是他有一個(gè)savepoint哑诊。

也就是說(shuō)ServiceB.methodB失敗回滾,那么ServiceA.methodA也會(huì)回滾到savepoint點(diǎn)上及刻,ServiceA.methodA可以選擇另外一個(gè)分支镀裤,比如ServiceC.methodC竞阐,繼續(xù)執(zhí)行,來(lái)嘗試完成自己的事務(wù)暑劝。但是這個(gè)事務(wù)并沒(méi)有在EJB標(biāo)準(zhǔn)中定義骆莹。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市担猛,隨后出現(xiàn)的幾起案子幕垦,更是在濱河造成了極大的恐慌,老刑警劉巖傅联,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件先改,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蒸走,警方通過(guò)查閱死者的電腦和手機(jī)仇奶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)载碌,“玉大人猜嘱,你說(shuō)我怎么就攤上這事〖尥В” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵弦撩,是天一觀的道長(zhǎng)步咪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)益楼,這世上最難降的妖魔是什么猾漫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮感凤,結(jié)果婚禮上悯周,老公的妹妹穿的比我還像新娘。我一直安慰自己陪竿,他們只是感情好禽翼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著族跛,像睡著了一般闰挡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上礁哄,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天长酗,我揣著相機(jī)與錄音,去河邊找鬼桐绒。 笑死夺脾,一個(gè)胖子當(dāng)著我的面吹牛之拨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咧叭,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蚀乔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了佳簸?” 一聲冷哼從身側(cè)響起乙墙,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎生均,沒(méi)想到半個(gè)月后听想,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡马胧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年汉买,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佩脊。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛙粘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出威彰,到底是詐尸還是另有隱情出牧,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布歇盼,位于F島的核電站舔痕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏豹缀。R本人自食惡果不足惜伯复,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望邢笙。 院中可真熱鬧啸如,春花似錦、人聲如沸氮惯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)筐骇。三九已至债鸡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铛纬,已是汗流浹背厌均。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留告唆,地道東北人棺弊。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓晶密,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親模她。 傳聞我的和親對(duì)象是個(gè)殘疾皇子稻艰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 事務(wù)的嵌套概念 所謂事務(wù)的嵌套就是兩個(gè)事務(wù)方法之間相互調(diào)用。spring事務(wù)開(kāi)啟 侈净,或者是基于接口的或者是基于類的...
    jackcooper閱讀 1,414評(píng)論 0 10
  • 在所有使用 spring 的應(yīng)用中, 聲明式事務(wù)管理可能是使用率最高的功能了, 但是, 從我觀察到的情況看, 絕大...
    我是一只小小豬閱讀 553評(píng)論 0 0
  • 事務(wù)尊勿,是為了保障邏輯處理的原子性、一致性畜侦、隔離性元扔、永久性。 通過(guò)事務(wù)控制旋膳,可以避免因?yàn)檫壿嬏幚硎《鴮?dǎo)致產(chǎn)生臟數(shù)據(jù)...
    uzip柚子皮閱讀 4,601評(píng)論 3 16
  • .sh結(jié)尾的就是shell腳本澎语,一般來(lái)講,在linux下,都是bin shell验懊,當(dāng)然還有什么c shell,說(shuō)白...
    貝克街的貓大哥呀閱讀 218評(píng)論 0 0
  • 時(shí)光重回2015义图,隱約是這個(gè)時(shí)候减俏。已多多少少記不清她的樣子,想來(lái)也是遺憾的碱工。人有些階段是難得的垄懂,就比如感覺(jué)會(huì)...
    蓉一郎閱讀 254評(píng)論 0 0