spring事務傳播機制

2021-10-12 01:33:22 字數 608 閱讀 8084

事務傳播:乙個被事務修飾的方法,被另外乙個方法呼叫的時候,事務是如何傳播的。

public

voidb(

)public

voida(

)

當b方法呼叫a方法時,a方法被以下事務所修飾時

1.propagation.required:

當a方法沒有被事務修飾時,b會建立新事務

1.a異常,b正常

2.b異常,a正常

當a方法被事務所修飾,b加入該事務

就是兩個方法有乙個異常,全部回滾

2.propagation.requires_new

當a方法沒有被事務修飾時,b會建立新事務

同上當a方法被事務所修飾,b仍然建立新事務

1.a方法異常,b正常執行

2.b方法異常,a回滾

3.propagation.nested

當a方法沒有被事務修飾時,b會建立新事務

同上當a方法被事務所修飾

1.a異常,b回滾

2.b異常,a正常

有事務修飾時,與requires_new正好相反。

4.support

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...