Spring事務傳播機制

2022-04-04 17:03:29 字數 616 閱讀 3387

spring事務傳播機制

spring在transactiondefinition介面中規定了7種型別的事務傳播行為,它們規定了事務方法和事務方法發生巢狀呼叫時事務如何進行傳播, 即協調已經有事務標識的方法之間的發生呼叫時的事務上下文的規則(是否要有獨立的事務隔離級別和鎖)

概述

當我們呼叫乙個基於spring的service介面方法(如userservice#adduser())時,它將執行於spring管理的事務 環境中,service介面方法可能會在內部呼叫其它的service介面方法以共同完成乙個完整的業務操作,因此就會產生服務介面方法巢狀呼叫的情況, spring通過事務傳播行為控制當前的事務如何傳播到被巢狀呼叫的目標服務介面方法中。

事務傳播是spring進行事務管理的重要概念,其重要性怎麼強調都不為過。但是事務傳播行為也是被誤解最多的地方,在本文裡,我們將詳細分析不同事務傳播行為的表現形式,掌握它們之間的區別。

事務傳播行為種類

測試案例:

參考:

Spring事務傳播機制

在 spring的 transactiondefinition介面中一共定義了7種事務傳播屬性 propagation required 支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇,也是spring事務傳播機制的預設值。propagation supports 支援當前事務,如...

spring事務傳播機制

1.required 必須有乙個事務的支援。如果沒有事務,則新建立乙個,如果有父事務,則使用 fetch 父級事務 2.requires new 必定會建立乙個事務。如果有父事務,則掛起 suspend 父事務,等子事務執行完畢,在恢復 resume 父事務 3.supports 可以有或者沒有事務...

spring事務傳播機制

spring事務傳播機制 propagation required spring預設 如果已經存在事務,那麼加入當前事務,如果不存在事務,則新建事務。總是建立乙個新的事務。新建立事務a,而以前的事務b還在執行。此時有兩個事務,事務a先執行,事務b則被掛起。只有事務a執行完畢後,事務b將繼續執行。ro...