事務的傳播行為

2022-08-05 09:48:18 字數 980 閱讀 9177

【簡介】

當事務方法被另乙個事務方法呼叫時,必須指定事務應該如何傳播。例如:方法可能繼續在現有事務中執行,也可能開啟乙個新事務,並在自己的事務中執行。

事務的傳播行為可以由傳播屬性指定。spring定義了

7種類傳播行為。

事務傳播屬性可以在@transactional註解的propagation屬性中定義。

【測試】

1) . 說明

①required傳播行為

當bookservice的

purchase()

方法被另乙個事務方法

checkout()

呼叫時,它缺省會在現有的事務內執行。這個預設的傳播行為就是

required

。因此在

checkout()

方法的開始和終止邊界內只有乙個事務。這個事務只在

checkout()

方法結束的時候被提交,結果使用者一本書都買不了。

②. requires_new傳播行為

表示該方法必須啟動乙個新事務,並在自己的事務內執行。如果有事務在執行,就應該先掛起它。

【補充】

在spring 2.x事務通知中,可以像下面這樣在

元素中設定傳播事務屬性。

事務傳播行為

事務傳播行為型別 說明propagation required 如果當前沒有事務,就新建乙個事務,如果已經存在乙個事務中,加入到這個事務中。這是最常見的選擇。propagation supports 支援當前事務,如果當前沒有事務,就以非事務方式執行。propagation mandatory 使用...

事務的傳播行為

所謂事務的傳播行為是指,如果在開始當前事務之前,乙個事務上下文已經存在,這時有七個屬性可以指定該事務的執行行為。1.propagation required 如果當前存在事務,則加入該事務 如果當前沒有事務,則建立乙個新的事務。這是預設值 2.propagation supports 如果當前存在事...

spring 事務傳播行為

事務傳播行為種類 spring在transactiondefinition介面中規定了7種型別的事務傳播行為,它們規定了事務方法和事務方法發生巢狀呼叫時事務如何進行傳播 事務傳播行為型別 事務傳播行為型別 說明propagation required 如果當前沒有事務,就新建乙個事務,如果已經存在乙...