springboot事務(wù)管理詳解

之前搭建的Spring boot Mybatis 整合(注解版)中我們簡單的使用了springboot的事務(wù)管理,那么接下來講解一下事務(wù)管理的詳細配置

之前的例子中我們使用了默認的事務(wù)配置泛范,可以滿足一些基本的事務(wù)需求紊撕,但是當我們項目較大較復(fù)雜時(比如罢荡,有多個數(shù)據(jù)源等)对扶,這時候需要在聲明事務(wù)時,指定不同的事務(wù)管理器浪南。在聲明事務(wù)時,只需要通過value屬性指定配置的事務(wù)管理器名即可骡送,例如:@Transactional(value="transactionManagerPrimary")昂羡。

除了指定不同的事務(wù)管理器之后各谚,還能對事務(wù)進行隔離級別和傳播行為的控制,下面分別詳細解釋:

隔離級別

隔離級別是指若干個并發(fā)的事務(wù)之間的隔離程度赴穗,與我們開發(fā)時候主要相關(guān)的場景包括:臟讀取、重復(fù)讀般眉、幻讀潜支。

我們可以看org.springframework.transaction.annotation.Isolation枚舉類中定義了五個表示隔離級別的值:


public enum Isolation {
    DEFAULT(-1),
    READ_UNCOMMITTED(1),
    READ_COMMITTED(2),
    REPEATABLE_READ(4),
    SERIALIZABLE(8);
}
  • DEFAULT:這是默認值,表示使用底層數(shù)據(jù)庫的默認隔離級別冗酿。對大部分數(shù)據(jù)庫而言,通常這值就是:READ_COMMITTED裁替。
  • READ_UNCOMMITTED:該隔離級別表示一個事務(wù)可以讀取另一個事務(wù)修改但還沒有提交的數(shù)據(jù)。該級別不能防止臟讀和不可重復(fù)讀弱判,因此很少使用該隔離級別。
  • READ_COMMITTED:該隔離級別表示一個事務(wù)只能讀取另一個事務(wù)已經(jīng)提交的數(shù)據(jù)开伏。該級別可以防止臟讀,這也是大多數(shù)情況下的推薦值固灵。
  • REPEATABLE_READ:該隔離級別表示一個事務(wù)在整個過程中可以多次重復(fù)執(zhí)行某個查詢株婴,并且每次返回的記錄都相同怎虫。即使在多次查詢之間有新增的數(shù)據(jù)滿足該查詢困介,這些新增的記錄也會被忽略蘸际。該級別可以防止臟讀和不可重復(fù)讀。
  • SERIALIZABLE:所有的事務(wù)依次逐個執(zhí)行粮彤,這樣事務(wù)之間就完全不可能產(chǎn)生干擾姜骡,也就是說屿良,該級別可以防止臟讀、不可重復(fù)讀以及幻讀尘惧。但是這將嚴重影響程序的性能。通常情況下也不會用到該級別喷橙。

指定方法:通過使用isolation屬性設(shè)置,例如:

@Transactional(isolation = Isolation.DEFAULT)

傳播行為

所謂事務(wù)的傳播行為是指悬荣,如果在開始當前事務(wù)之前,一個事務(wù)上下文已經(jīng)存在氯迂,此時有若干選項可以指定一個事務(wù)性方法的執(zhí)行行為言缤。

我們可以看org.springframework.transaction.annotation.Propagation枚舉類中定義了6個表示傳播行為的枚舉值:

public enum Propagation {
    REQUIRED(0),
    SUPPORTS(1),
    MANDATORY(2),
    REQUIRES_NEW(3),
    NOT_SUPPORTED(4),
    NEVER(5),
    NESTED(6);
}
  • REQUIRED:如果當前存在事務(wù),則加入該事務(wù)轧简;如果當前沒有事務(wù),則創(chuàng)建一個新的事務(wù)哮独。
  • SUPPORTS:如果當前存在事務(wù),則加入該事務(wù)皮璧;如果當前沒有事務(wù),則以非事務(wù)的方式繼續(xù)運行睹限。
  • MANDATORY:如果當前存在事務(wù),則加入該事務(wù)羡疗;如果當前沒有事務(wù)别洪,則拋出異常叨恨。
  • REQUIRES_NEW:創(chuàng)建一個新的事務(wù)挖垛,如果當前存在事務(wù)秉颗,則把當前事務(wù)掛起送矩。
  • NOT_SUPPORTED:以非事務(wù)方式運行,如果當前存在事務(wù)栋荸,則把當前事務(wù)掛起。
  • NEVER:以非事務(wù)方式運行蒸其,如果當前存在事務(wù),則拋出異常摸袁。
  • NESTED:如果當前存在事務(wù),則創(chuàng)建一個事務(wù)作為當前事務(wù)的嵌套事務(wù)來運行蜂大;如果當前沒有事務(wù),則該取值等價于REQUIRED奶浦。

指定方法:通過使用propagation屬性設(shè)置踢星,例如:

@Transactional(propagation = Propagation.REQUIRED)

原文作者:程序員didi
原文鏈接:http://blog.didispace.com/springboottransactional/

微信公眾號
關(guān)注我的微信公眾號:CodeD
不定期分享新的技術(shù)知識

微信公眾號

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市成洗,隨后出現(xiàn)的幾起案子藏否,更是在濱河造成了極大的恐慌瓶殃,老刑警劉巖副签,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異冠场,居然都是意外死亡,警方通過查閱死者的電腦和手機慈鸠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門灌具,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咖楣,你說我怎么就攤上這事∮栈撸” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵料扰,是天一觀的道長焙蹭。 經(jīng)常有香客問我晒杈,道長孔厉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任撰豺,我火速辦了婚禮,結(jié)果婚禮上亩歹,老公的妹妹穿的比我還像新娘。我一直安慰自己小作,他們只是感情好梭纹,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著变抽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绍载。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天塔沃,我揣著相機與錄音,去河邊找鬼蛀柴。 笑死螃概,一個胖子當著我的面吹牛鸽疾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播制肮,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼豺鼻,長吁一口氣:“原來是場噩夢啊……” “哼综液!你這毒婦竟也來了儒飒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤届良,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后士葫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡慢显,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年欠啤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洁段。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疾呻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岸蜗,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布璃岳,位于F島的核電站,受9級特大地震影響铃慷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜枚冗,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧淤齐,春花似錦、人聲如沸更啄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柳沙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赂鲤,已是汗流浹背肋拔。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梗顺,地道東北人泡孩。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓寺谤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親矗漾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

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