您好,登錄后才能下訂單哦!
本篇內容介紹了“Spring事務的七種傳播行為是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
什么叫事務傳播行為?聽起來挺高端的,其實很簡單。
即然是傳播,那么至少有兩個東西,才可以發生傳播。單體不存在傳播這個行為。
所為的事務傳播行為就是多個聲明的事務的方法 相互調用的時候,這個事務該如何傳遞
如上圖:methodA()
調用methodB()
那么這兩個方法都顯示了開啟事務,那么methodB()
開啟一個新的事務,還是繼續在methodA()
這個事務里面去執行,就去決所謂的事務傳播的一個行為
Spring中定義了七種事務的傳播行為,完整版的傳播行為如下:
REQUIRED(默認)
:它是Spring里面默認的事務傳播行為,也就新當前存在事務就加入到當前事務去執行,如果不存在事務就創建一個事務
REQUIRE_NEW
:它不管是否存在事務,它都會新開啟一個事務來執行,新老事務相互獨立的,外部事務拋出異常,并不會影響內部事務的一個正常提交
NESTED
:如果當前存在事務,就嵌套當前事務中去執行,如果當前沒有事務,那么就新建一個事務,類似 REQUIRE_NEW
這個樣一個傳播行為
SUPPORTS
:表示支持當前當前的事務,如果當前不存在事務,就以非事務的方式去執行
NOT_SUPPORT
:表示以非事務的方式來運行,如果當前存在事務,就需要把當前的事務掛起來。
MANDATORY
:它是一個強制的事務執行,如果當前不存在事務就拋出一個異常
NEVER
:就是以非事務的方式來執行,如果當前存在事務則拋出一個異常
Spring的事務傳播級別一般是不需要去定義的,默認就是 REQUIRED
,除非在嵌套的事務情況下,需要去重點了解
“Spring事務的七種傳播行為是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。