spring中的事務管理(二)

 spring中的事務管理(二)

事務傳播屬性

        當事務方法被另一個事務方法調用時, 必須指定事務應該如何傳播. 例如: 方法可能繼續在現有事務中運行, 也可能開啓一個新事務, 並在自己的事務中運行.

        事務的傳播行爲可以由傳播屬性指定. Spring 定義了 7  種類傳播行爲.

 

Spring 支持的事務傳播行爲

 

REQUIRED傳播行爲

當 bookService 的 purchase() 方法被另一個事務方法 checkout() 調用時, 它默認會在現有的事務內運行. 這個默認的傳播行爲就是 REQUIRED. 因此在 checkout() 方法的開始和終止邊界內只有一個事務. 這個事務只在 checkout() 方法結束的時候被提交, 結果用戶一本書都買不了

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

 

REQUIRES_NEW傳播行爲

另一種常見的傳播行爲是REQUIRES_NEW. 它表示該方法必須啓動一個新事務, 並在自己的事務內運行. 如果有事務在運行, 就應該先掛起它.

 

事務通知中配置傳播屬性




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章