1、簡介
當事務方法被另乙個事務方法呼叫時,必須指定事務應該如何傳播。例如:方法可能繼續在現有事務中執行,也可能開啟乙個新事務,並在自己的事務中執行。
事務的傳播行為可以由傳播屬性指定。spring定義了
7種類傳播行為。如下圖所示:
2、傳播屬性的定義
①、事務的傳播屬性可以再@transactional註解的
propagation
屬性中定義。如圖所示:
在spring 2.x事務通知中,可以像下面這樣在
元素中設定傳播事務屬性。
3、常用的兩種傳播行為的說明
①、required
傳播行為
當bookservice的
purchase()
方法被另乙個事務方法
checkout()
呼叫時,它缺省會在現有的事務內執行。這個預設的傳播行為就是
required
。因此在
checkout()
方法的開始和終止邊界內只有乙個事務。這個事務只在
checkout()
方法結束的時候被提交,結果使用者一本書都買不了。
②、requires_new傳播行為
表示該方法必須啟動乙個新事務,並在自己的事務內執行。如果有事務在執行,就應該先掛起它。
spring事務管理(事務的理解)
事務必須服從acid原則。acid指的是 1.原子性 atomicity 2.一致性 consistency 3.隔離性 isolation 4.永續性 durability 理解為,事務其實就是一系列指令的集合。在許多事務處理同乙個資料時,如果沒有採取有效的隔離機制,那麼併發處理資料時,會帶來一些...
Spring事務管理及事務傳播行為
大家所了解的事務transaction,它是一些列嚴密操作動作,要麼都操作完成,要麼都回滾撤銷。spring事務管理基於底層資料庫本身的事務處理機制。資料庫事務的基礎,是掌握spring事務管理的基礎。這篇總結下spring事務。事務具備acid四種特性,acid是atomic 原子性 consis...
Spring 事務機制原理 事務管理 API
spring的事務管理機制實現的原理,是通過動態 對所有需要事務管理的bean進行載入,並根據配置在invoke方法中對當前呼叫的 方法名進行判定,並在method.invoke方法前後為其加上合適的事務管理 這樣就實現了spring式的事務管理。spring中的aop實現更為複雜和靈活,不過基本原...