#########
事務細節:
#timeout:預設為 -1 超時,如果超出指定時間,事務將自動終止並回滾 (單位 : s )
#readonly:預設為 false 指定事務 唯讀,會大大增加執行效率,但是如果 事務中不止讀操作,還有其它增刪改操作,那麼
會報錯#
異常: 執行時異常(非檢查異常) 預設 事務都回滾, 而 編譯時異常(檢查異常) 預設是事務不回滾
#norollbackforclassname : 設定 出現異常時 哪些事務不會回滾
例: norollbackforclassname =
#norollbackfor : 和 norollbackforclassname 一樣的作用,只是設定時比它簡單
例: norollbackfor=
#rollbackforclassname : 和上面的作用相反,使出現異常時,哪些異常事務回滾
例: rollbackfor =
#rollbackfor :同上
例: rollbackfor =
#isolation :設定事務隔離級別(讀未提交,讀已提交,可重複讀,序列化)
例: isolation = isolation.read_uncommitted 讀未提交
例: isolation = isolation.read_committed 讀已提交
例: isolation = isolation.repeatable-read 可重複讀
#propagation :事務的傳播行為,當乙個事務方法被另乙個方法(事務方法或普通方法)呼叫的時候,
必須指定事務應該如何傳播
例: required 如果有事務在執行,當前的事務方法就在這個事務內執行,否則就自己開啟新的事務,並在自己的事務內執行
例: requires_new 當前方法必須開啟新的事務,並在它自己的事務內執行,如果有事務在執行,就將執行的事務掛起,執行這個新開啟的事務方法
例 supports 如果有事務執行,當前方法就在執行在這個事務內,否則可以不在這個事務內執行
例: not_supports 當前方法不應該執行在事務中,如果有執行的事務,就將執行的事務掛起,執行新的事務
例: mandatory 當前方法必須在事務內執行,如果沒有執行的事務,就丟擲異常
例: never 當前方法不應該執行在事務內,如果有執行的事務,就丟擲異常
例: nested 如果有事務執行,當前方法就在這個事務的巢狀事務內執行,否則就開啟新事務,並在自己的事務內執行
spring事務總結
1.spring中被標有 transactional註解 也就是事務 的方法不能夠自己呼叫自己。2.在同乙個service實現類中,不同的方法之間可以相互呼叫。3.spring框架的事務基礎架構 將預設地只在丟擲執行時和unchecked exceptions時才標識事務回滾。也就是說,當丟擲乙個 ...
spring 事務總結
tx是由aop實現的 aop的實現方式 1 方式 spring aop 1.jdk的基於介面方式 2.cglib的基於類的方式 修改位元組碼,加入extend 類?這兩種 方式 都存在父子關係,也跟日常生活中的 一樣。具體可以參考動態 模式 2 非 aspectj?這貨沒用 實現?有空看看cglib...
spring 事務總結
程式設計式事務 datasoucetransactionmanager 資料來源事務管理器 主要api 開啟事務,提交事務,回滾事務 宣告式事務 transaction 程式設計式事務封裝 aop動態 實現 常用屬性 rollbackfor 預設捕獲到error和runtimeexception 會...