溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring事務的七種傳播行為是什么

發(fā)布時間:2022-04-29 09:07:02 來源:億速云 閱讀:201 作者:zzz 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Spring事務的七種傳播行為是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

一、什么是事務傳播行為

什么叫事務傳播行為?聽起來挺高端的,其實很簡單。
即然是傳播,那么至少有兩個東西,才可以發(fā)生傳播。單體不存在傳播這個行為。
所為的事務傳播行為就是多個聲明的事務的方法 相互調(diào)用的時候,這個事務該如何傳遞

Spring事務的七種傳播行為是什么

如上圖:methodA()調(diào)用methodB()那么這兩個方法都顯示了開啟事務,那么methodB()開啟一個新的事務,還是繼續(xù)在methodA()這個事務里面去執(zhí)行,就去決所謂的事務傳播的一個行為

二、事務的傳播行為有哪些?

Spring中定義了七種事務的傳播行為,完整版的傳播行為如下: 

Spring事務的七種傳播行為是什么

  • REQUIRED(默認):它是Spring里面默認的事務傳播行為,也就新當前存在事務就加入到當前事務去執(zhí)行,如果不存在事務就創(chuàng)建一個事務

  • REQUIRE_NEW:它不管是否存在事務,它都會新開啟一個事務來執(zhí)行,新老事務相互獨立的,外部事務拋出異常,并不會影響內(nèi)部事務的一個正常提交

  • NESTED:如果當前存在事務,就嵌套當前事務中去執(zhí)行,如果當前沒有事務,那么就新建一個事務,類似 REQUIRE_NEW這個樣一個傳播行為

  • SUPPORTS:表示支持當前當前的事務,如果當前不存在事務,就以非事務的方式去執(zhí)行

  • NOT_SUPPORT:表示以非事務的方式來運行,如果當前存在事務,就需要把當前的事務掛起來。

  • MANDATORY:它是一個強制的事務執(zhí)行,如果當前不存在事務就拋出一個異常

  • NEVER:就是以非事務的方式來執(zhí)行,如果當前存在事務則拋出一個異常

Spring的事務傳播級別一般是不需要去定義的,默認就是 REQUIRED,除非在嵌套的事務情況下,需要去重點了解

“Spring事務的七種傳播行為是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI