Spring的事務(wù)傳播行為

Spring的事務(wù)傳播行為

  1. PROPAGATION_REQUIRED ,如果存在一個(gè)事務(wù),則支持當(dāng)前事務(wù)。如果沒有事務(wù)則開啟一個(gè)新的事務(wù)

  2. PROPAGATION_SUPPORTS 思币,如果存在一個(gè)事務(wù),支持當(dāng)前事務(wù)羡微。如果沒有事務(wù)谷饿,則非事務(wù)的執(zhí)行。

  3. PROPAGATION_MANDATORY 妈倔,如果已經(jīng)存在一個(gè)事務(wù)博投,支持當(dāng)前事務(wù)。如果沒有一個(gè)活動(dòng)的事務(wù)启涯,則拋出異常贬堵。

  4. PROPAGATION_REQUIRES_NEW, 總是開啟一個(gè)新的事務(wù)结洼。如果一個(gè)事務(wù)已經(jīng)存在黎做,則將這個(gè)存在的事務(wù)掛起。

  5. PROPAGATION_NOT_SUPPORTED松忍, 總是非事務(wù)地執(zhí)行蒸殿,并掛起任何存在的事務(wù)。

  6. PROPAGATION_NEVER ,總是非事務(wù)地執(zhí)行宏所,如果存在一個(gè)活動(dòng)事務(wù)酥艳,則拋出異常

  7. PROPAGATION_NESTED,如果一個(gè)活動(dòng)的事務(wù)存在爬骤,則運(yùn)行在一個(gè)嵌套的事務(wù)中. 如果沒有活動(dòng)事務(wù), 則按PROPAGATION_REQUIRED 屬性執(zhí)行

嵌套事務(wù)和新的事務(wù)的區(qū)別

新的事務(wù)充石,獨(dú)立于之前的服務(wù),互不影響提交回滾霞玄。
嵌套事務(wù)骤铃,是以之前的服務(wù)為父事務(wù),起的一個(gè)子事務(wù)坷剧。子事務(wù)執(zhí)行完之后惰爬,父事務(wù)才會(huì)接著實(shí)行。子事務(wù)的回滾不會(huì)導(dǎo)致父事務(wù)的回滾惫企。但是父事務(wù)的回滾帶導(dǎo)致子事務(wù)的回滾撕瞧。父事務(wù)提交,子事務(wù)也回跟著提交狞尔。

Spring的事務(wù)配置

聲明式的事務(wù)處理中丛版,要配置一個(gè)切面,即一組方法沪么,如

<!-- 隔離級別配置-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
        <tx:attributes>  
            <tx:method name="find*" propagation="SUPPORTS" read-only="true" />  
            <tx:method name="query*" propagation="SUPPORTS" read-only="true" />  
            <tx:method name="list*" propagation="SUPPORTS" read-only="true" />  
  
            <tx:method name="create*" propagation="REQUIRED" />  
            <tx:method name="save*" propagation="REQUIRED" />  
            <tx:method name="modify*" propagation="REQUIRED" />  
            <tx:method name="update*" propagation="REQUIRED" />  
            <tx:method name="delete*" propagation="REQUIRED" />  
            <tx:method name="*" propagation="SUPPORTS" read-only="true" />  
        </tx:attributes>  
    </tx:advice>
1硼婿、事務(wù)的傳播性:@Transactional(propagation=Propagation.REQUIRED) 
      如果有事務(wù), 那么加入事務(wù), 沒有的話新建一個(gè)(默認(rèn)情況下)

2、事務(wù)的超時(shí)性:@Transactional(timeout=30) //默認(rèn)是30秒 
      注意這里說的是事務(wù)的超時(shí)性而不是Connection的超時(shí)性禽车,這兩個(gè)是有區(qū)別的

3寇漫、事務(wù)的隔離級別:@Transactional(isolation = Isolation.READ_UNCOMMITTED)
      讀取未提交數(shù)據(jù)(會(huì)出現(xiàn)臟讀, 不可重復(fù)讀) 基本不使用

4、回滾:
    指定單一異常類:@Transactional(rollbackFor=RuntimeException.class)
    指定多個(gè)異常類:@Transactional(rollbackFor={RuntimeException.class, Exception.class})
    該屬性用于設(shè)置需要進(jìn)行回滾的異常類數(shù)組殉摔,當(dāng)方法中拋出指定異常數(shù)組中的異常時(shí)州胳,則進(jìn)行事務(wù)回滾。

5逸月、只讀:@Transactional(readOnly=true)
    該屬性用于設(shè)置當(dāng)前事務(wù)是否為只讀事務(wù)栓撞,設(shè)置為true表示只讀,false則表示可讀寫碗硬,默認(rèn)值為false瓤湘。

只讀事務(wù):如果你一次執(zhí)行多條查詢語句,多條查詢SQL必須保證整體的讀一致性恩尾,否則弛说,在前條SQL查詢之后,后條SQL查詢之前翰意,數(shù)據(jù)被其他用戶改變瘸彤,則該次整體的查詢將會(huì)出現(xiàn)讀數(shù)據(jù)不一致的狀態(tài),此時(shí)件甥,應(yīng)該啟用事務(wù)支持

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市邻寿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件形病,死亡現(xiàn)場離奇詭異,居然都是意外死亡蒲列,警方通過查閱死者的電腦和手機(jī)窒朋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門搀罢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝗岖,“玉大人,你說我怎么就攤上這事榔至〉钟” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵唧取,是天一觀的道長铅鲤。 經(jīng)常有香客問我,道長枫弟,這世上最難降的妖魔是什么邢享? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮淡诗,結(jié)果婚禮上骇塘,老公的妹妹穿的比我還像新娘。我一直安慰自己韩容,他們只是感情好款违,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著群凶,像睡著了一般插爹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上请梢,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天赠尾,我揣著相機(jī)與錄音,去河邊找鬼毅弧。 笑死气嫁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的形真。 我是一名探鬼主播杉编,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼超全,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了邓馒?” 一聲冷哼從身側(cè)響起嘶朱,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎光酣,沒想到半個(gè)月后疏遏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡救军,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年财异,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唱遭。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡戳寸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拷泽,到底是詐尸還是另有隱情疫鹊,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布司致,位于F島的核電站拆吆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏脂矫。R本人自食惡果不足惜枣耀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庭再。 院中可真熱鬧捞奕,春花似錦、人聲如沸佩微。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哺眯。三九已至谷浅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奶卓,已是汗流浹背一疯。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夺姑,地道東北人墩邀。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像盏浙,于是被迫代替她去往敵國和親眉睹。 傳聞我的和親對象是個(gè)殘疾皇子荔茬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

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

  • 很多人喜歡這篇文章,特此同步過來 由淺入深談?wù)搒pring事務(wù) 前言 這篇其實(shí)也要?dú)w納到《常識(shí)》系列中竹海,但這重點(diǎn)又...
    碼農(nóng)戲碼閱讀 4,736評論 2 59
  • 事務(wù)的嵌套概念 所謂事務(wù)的嵌套就是兩個(gè)事務(wù)方法之間相互調(diào)用慕蔚。spring事務(wù)開啟 ,或者是基于接口的或者是基于類的...
    jackcooper閱讀 1,420評論 0 10
  • 事務(wù)斋配,是為了保障邏輯處理的原子性孔飒、一致性、隔離性艰争、永久性坏瞄。 通過事務(wù)控制,可以避免因?yàn)檫壿嬏幚硎《鴮?dǎo)致產(chǎn)生臟數(shù)據(jù)...
    uzip柚子皮閱讀 4,618評論 3 16
  • 母親節(jié)(Mother's Day)甩卓,是一個(gè)感謝母親的節(jié)日鸠匀。母親們在這一天通常會(huì)收到禮物,康乃馨被視為獻(xiàn)給母親的花猛频,...
    衛(wèi)校一五康復(fù)閱讀 135評論 0 0
  • 思考:零和博弈其背后的邏輯是非黑即白狮崩、你死我活模式,現(xiàn)實(shí)生活中有很多零和博弈的案例鹿寻。 比如,最近和女兒做一個(gè)賭約诽凌,...
    楊雪雪閱讀 425評論 0 0