Spring中的事務(wù)處理

1. spring 的事務(wù)屬性

屬性:描述物體特征的一系列值瓜富。例如:身高芦瘾、體重、年齡滞乙。债蓝。壳鹤。
事務(wù)屬性:描述事務(wù)特征的一系列值

1.1 什么是事務(wù)屬性

(1) 隔離屬性

(2) 傳播屬性

(3) 只讀屬性

(4) 超時屬性

(5) 異常屬性

1.2 如何添加事務(wù)屬性

@Transational(isolation = ,propagation = ,readOnly =,timeout = ,rollbackFor =)

1.3 事務(wù)屬性詳解

1.3.1 isolation(隔離屬性)

概念:它描述了事務(wù)解決并發(fā)問題的特征(并發(fā):多個事務(wù)(用戶)在同一時間,訪問操作了相同的數(shù)據(jù)惦蚊。)
產(chǎn)生的問題:
(1)臟讀:一個事務(wù)讀取了另外一個事務(wù)中沒有提交的數(shù)據(jù)器虾。會在本事務(wù)中產(chǎn)生數(shù)據(jù)不一致的問題。
    解決方案:@Transational(isolation =Isolation.READ_COMMITTED)讓一個事務(wù)只能讀取其他事務(wù)提交了的事務(wù)的數(shù)據(jù)蹦锋。
(2)不可重復(fù)讀:一個事務(wù)中兆沙,多次讀取相同的數(shù)據(jù),但是讀取結(jié)果不一樣莉掂,會在本事務(wù)中產(chǎn)生數(shù)據(jù)不一致的問題葛圃。(注意:1.這個不是臟讀,2. 多次查詢在一個事務(wù)中)
    解決方案:@Transactional(isolation =Isolation.REPEATABLE_READ)
    本質(zhì):一把行鎖憎妙,其他事務(wù)無法操作
(3)幻影讀:一個事務(wù)中库正,多次對整表進行查詢統(tǒng)計,但是結(jié)果不一樣厘唾,會在本事務(wù)中產(chǎn)生數(shù)據(jù)不一致的問題褥符。
    解決方案:@Transactional(isolation =Isolation.SERIALIZABLE)
    本質(zhì):表鎖

總結(jié):
     安全:SERIALIZABLE > REPEATABLE_READ > READ_COMMITTED
     效率:READ_COMMITTED > REPEATABLE_READ > SERIALIZABLE
spring在設(shè)置時,要是沒有指定默認的隔離屬性抚垃,底層會調(diào)用數(shù)據(jù)庫所設(shè)置的默認屬性(mysql是REPEATABLE_READ)

1.3.2 PROPAGATION(傳播屬性)

概念:它描述了事務(wù)解決嵌套問題的特征
什么叫做事務(wù)嵌套:它指一個事務(wù)中喷楣,包含了若干個小的事務(wù)(也可以理解為一個service中調(diào)用了其他若干個service趟大,而每個service中都開啟了事務(wù))。
問題:大事務(wù)中融入了很多小的事務(wù)铣焊,他們彼此影響逊朽,最終會導(dǎo)致外部大的事務(wù)喪失了事務(wù)的原子性。
傳播屬性的值 外部不存在事務(wù) 外部存在事務(wù) 用法 說明
REQUIRED 開啟新的事務(wù) 融合到外部事務(wù)中 @Transactional(propagation=Propagation.REQUIRED) 適用于增刪改
SUPPORTS 不開啟新的事務(wù) 融合到外部事務(wù)中 @Transactional(propagation=Propagation.SUPPORTS) 適用于查詢操作
MANDATORY 拋出異常 融合到外部事務(wù)中 @Transactional(propagation=Propagation.MANDATORY)
REQUIRES_NEW 開啟新的事務(wù) 掛起外部事務(wù)曲伊,創(chuàng)建新的事務(wù) @Transactional(propagation=Propagation.REQUIRES_NEW) 日志記錄
NOT_SUPPORTED 不開啟新的事務(wù) 掛起外部事務(wù) @Transactional(propagation=Propagation.NOT_SUPPORTED)
NEVER 不開啟新的事務(wù) 拋出異常 @Transactional(propagation=Propagation.NEVER)
NESTED 執(zhí)行與PROPAGATION_REQUIRED類似的操作 在嵌套事務(wù)內(nèi)執(zhí)行 @Transactional(propagation=Propagation.NESTED)
默認的傳播屬性:@Transactional(propagation=Propagation.REQUIRED)

1.3.3 readOnly(只讀屬性)

針對只進行查詢操作的業(yè)務(wù)方法叽讳,可以加只讀屬性,提高運行效率坟募。默認:false

1.3.4 timeout(超時屬性)

概念:指定了事務(wù)等待的最長時間
1. 為什么事務(wù)要進行等待:當(dāng)前事務(wù)訪問數(shù)據(jù)時岛蚤,有可能訪問的數(shù)據(jù)被別的事務(wù)進行加鎖,那么此時本事務(wù)就必須進行等待婿屹。
2. 等待的時間單位:秒
3. 應(yīng)用:@Transactional(timeout = 2)
4. 超時屬性的默認值:-1(最終由對應(yīng)的數(shù)據(jù)庫來指定)

1.3.5 rollbackFor(異常屬性)

Spring事務(wù)處理過程中
默認:對于RuntimeException及其子類灭美,采用回滾的策略。
默認:對于Exception及其子類昂利,采用的是提交的策略届腐。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蜂奸,隨后出現(xiàn)的幾起案子犁苏,更是在濱河造成了極大的恐慌,老刑警劉巖扩所,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件围详,死亡現(xiàn)場離奇詭異,居然都是意外死亡祖屏,警方通過查閱死者的電腦和手機助赞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袁勺,“玉大人雹食,你說我怎么就攤上這事∑诜幔” “怎么了群叶?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钝荡。 經(jīng)常有香客問我街立,道長,這世上最難降的妖魔是什么埠通? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任赎离,我火速辦了婚禮,結(jié)果婚禮上端辱,老公的妹妹穿的比我還像新娘梁剔。我一直安慰自己圾浅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布憾朴。 她就那樣靜靜地躺著,像睡著了一般喷鸽。 火紅的嫁衣襯著肌膚如雪众雷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天做祝,我揣著相機與錄音砾省,去河邊找鬼。 笑死混槐,一個胖子當(dāng)著我的面吹牛编兄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播声登,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼狠鸳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了悯嗓?” 一聲冷哼從身側(cè)響起件舵,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脯厨,沒想到半個月后铅祸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡合武,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年临梗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稼跳。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡盟庞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岂贩,到底是詐尸還是另有隱情茫经,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布萎津,位于F島的核電站卸伞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锉屈。R本人自食惡果不足惜荤傲,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颈渊。 院中可真熱鬧遂黍,春花似錦终佛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芯咧,卻和暖如春牙捉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敬飒。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工邪铲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人无拗。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓带到,卻偏偏與公主長得像,于是被迫代替她去往敵國和親英染。 傳聞我的和親對象是個殘疾皇子揽惹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

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