spring事務(wù)

大家好彼哼,我是IT修真院深圳分院java第4期學(xué)員顷牌,一枚正直善良的java程序員。今天給大家分享一下,簡(jiǎn)單的spring事務(wù)玲昧。

1.背景介紹

轉(zhuǎn)賬的案例

理解事務(wù)之前栖茉,先講一個(gè)你日常生活中最常干的事:轉(zhuǎn)賬。

張三給李四轉(zhuǎn)賬100元孵延。那數(shù)據(jù)庫(kù)假設(shè)需要 張三扣100吕漂,李四加100,記錄一條流水隙袁。

如果流水沒(méi)記錄成功痰娱,那整體回滾,張三也沒(méi)轉(zhuǎn)賬成功菩收,李四也沒(méi)多錢梨睁。

事務(wù)就是用來(lái)解決類似問(wèn)題的。

事務(wù)是一系列的動(dòng)作娜饵,它們綜合在一起才是一個(gè)完整的工作單元坡贺,這些動(dòng)作必須全部完成,如果有一個(gè)失敗的話箱舞,那么事務(wù)就會(huì)回滾到最開(kāi)始的狀態(tài)遍坟,仿佛什么都沒(méi)發(fā)生過(guò)一樣。

在企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)中晴股,事務(wù)管理必不可少的技術(shù)愿伴,用來(lái)確保數(shù)據(jù)的完整性和一致性。

2.知識(shí)剖析

事務(wù)有四個(gè)特性:ACID

原子性(Atomicity):事務(wù)是一個(gè)原子操作电湘,由一系列動(dòng)作組成延曙。

事務(wù)的原子性確保動(dòng)作要么全部完成廓八,要么完全不起作用茂装。

一致性(Consistency):一旦事務(wù)完成(不管成功還是失斅准),系統(tǒng)必須確保它所建模的業(yè)務(wù)處于一致的狀態(tài)贷痪,

而不會(huì)是部分完成部分失敗幻妓。在現(xiàn)實(shí)中的數(shù)據(jù)不應(yīng)該被破壞。

隔離性(Isolation):可能有許多事務(wù)會(huì)同時(shí)處理相同的數(shù)據(jù)劫拢,因此每個(gè)事務(wù)都應(yīng)該與其他事務(wù)隔離開(kāi)來(lái)肉津,防止數(shù)據(jù)損壞。

持久性(Durability):一旦事務(wù)完成舱沧,無(wú)論發(fā)生什么系統(tǒng)錯(cuò)誤妹沙,它的結(jié)果都不應(yīng)該受到影響,這樣就能從任何系統(tǒng)崩潰中恢復(fù)過(guò)來(lái)狗唉。通常情況下,事務(wù)的結(jié)果被寫到持久化存儲(chǔ)器中涡真。

事務(wù)傳播行為

事務(wù)規(guī)則也就是事務(wù)傳播行為分俯,用于解決業(yè)務(wù)層方法之間的相互調(diào)用的問(wèn)題

常見(jiàn)的事務(wù)傳播行為

REQUIRED:

表示當(dāng)前方法必須運(yùn)行在一個(gè)事物環(huán)境中肾筐,如果一個(gè)現(xiàn)有的事物正在運(yùn)行,該方法將運(yùn)行在這個(gè)事務(wù)中缸剪,否則吗铐,就要開(kāi)始一個(gè)新的事務(wù)

REQUIRESNEW

表示當(dāng)前方法必須運(yùn)行在自己的事務(wù)里

SUPPORTS

表示當(dāng)前方法不需要事務(wù)處理環(huán)境,但如果有一個(gè)事務(wù)正在運(yùn)行的話杏节,則這個(gè)方法也可以運(yùn)行在這個(gè)事務(wù)中

MANDATORY

表示當(dāng)前方法必須運(yùn)行在一個(gè)事務(wù)上下文中唬渗,否則就拋出異常

NEVER

表示當(dāng)前方法不應(yīng)該運(yùn)行在一個(gè)事務(wù)上下文中,否則就拋出異常

3.常見(jiàn)問(wèn)題

有哪些方式實(shí)現(xiàn)事務(wù)管理

4.解決方案

Spring 事務(wù)管理有兩種方式

一種是編程式事務(wù)管理奋渔,即通過(guò)編寫代碼實(shí)現(xiàn)事物管理镊逝,

包括定義事務(wù)的開(kāi)始,程序正常執(zhí)行后的事物提交嫉鲸,異常時(shí)進(jìn)行的事務(wù)回滾撑蒜。

另一種是基于AOP技術(shù)實(shí)現(xiàn)的聲明式事務(wù)管理

其主要思想是將事務(wù)管理作為一個(gè)“切面”代碼單獨(dú)編寫,我們只用關(guān)心核心業(yè)務(wù)邏輯代碼玄渗,然后通過(guò)AOP技術(shù)將事務(wù)管理的“切面”代碼織入到業(yè)務(wù)類中

聲明式事務(wù)管理有包括基于AOP方式的事務(wù)管理和基于 @Transactional注解方式的事務(wù)管理

聲明式事務(wù)管理極大的簡(jiǎn)化了編程式事務(wù)管理的操作流程座菠,不再需要重復(fù)地執(zhí)行定義事物的開(kāi)始,

程序正常執(zhí)行后事務(wù)提交藤树,異常時(shí)進(jìn)行事物回滾這些繁瑣的操作,

而基于 @Transactional注解的聲明式事務(wù)又進(jìn)一步簡(jiǎn)化了基于AOP的事務(wù)管理浴滴,減少了Spring配置代碼。

聲明式事務(wù)的缺點(diǎn)在于只能作用到方法級(jí)別岁钓,無(wú)法做到像編程式事務(wù)那樣能控制到代碼塊級(jí)別升略。

5.編碼實(shí)戰(zhàn)

。甜紫。降宅。

6.擴(kuò)展思考

。囚霸。腰根。

7.參考文獻(xiàn)

8.更多討論

PPT鏈接:戳這里

騰訊視頻:戳這里

今天的分享就到這里啦,歡迎大家點(diǎn)贊拓型、轉(zhuǎn)發(fā)额嘿、留言、拍磚~

技能樹(shù)劣挫。IT修真學(xué)院

“我們相信人人都可以成為一個(gè)工程師册养,現(xiàn)在開(kāi)始,找個(gè)師兄压固,帶你入門球拦,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷茫”坎炼。

這里是技能樹(shù).IT修真院愧膀,成千上萬(wàn)的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化谣光,成長(zhǎng)可見(jiàn)化檩淋,師兄1對(duì)1免費(fèi)指導(dǎo)√呀穑快來(lái)與我一起學(xué)習(xí)吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蟀悦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子氧敢,更是在濱河造成了極大的恐慌日戈,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件福稳,死亡現(xiàn)場(chǎng)離奇詭異涎拉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)的圆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門鼓拧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人越妈,你說(shuō)我怎么就攤上這事季俩。” “怎么了梅掠?”我有些...
    開(kāi)封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵酌住,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我阎抒,道長(zhǎng)酪我,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任且叁,我火速辦了婚禮都哭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逞带。我一直安慰自己欺矫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布展氓。 她就那樣靜靜地躺著穆趴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遇汞。 梳的紋絲不亂的頭發(fā)上未妹,一...
    開(kāi)封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天簿废,我揣著相機(jī)與錄音,去河邊找鬼络它。 笑死捏鱼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酪耕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼轨淌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼迂烁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起递鹉,我...
    開(kāi)封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盟步,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后躏结,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體却盘,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年媳拴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了黄橘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屈溉,死狀恐怖塞关,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情子巾,我是刑警寧澤帆赢,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站线梗,受9級(jí)特大地震影響椰于,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仪搔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一瘾婿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧僻造,春花似錦憋他、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至立膛,卻和暖如春揪罕,著一層夾襖步出監(jiān)牢的瞬間梯码,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工好啰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轩娶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓框往,卻偏偏與公主長(zhǎng)得像鳄抒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子椰弊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359