1. jdbc一般事務步驟

這一系列文章並不完整,這是我分析公司內部分佈式事務框架的一部分。我們的分佈式是基於二階段提交原理實現的,由於內部資料無法公開請大家諒解。下面將事務以及spring事務相關的一部分供大家參考!

1.一般jdbc事務要經歷如下步驟

1)獲取數據連接Connection con = datasource.getConnection();

2)設置非自動提交con.setAutoCommit(false);

3)執行數據庫crud操作

4)提交或者回滾事務con.commit()/con.rollback()

如上步驟其實除了第3步跟業務邏輯有關,其它都是固定步驟與業務邏輯無關的,編程式事務控制到處充斥這些代碼。

聲明式事務是爲了大家專注於業務,把事務固定步驟抽離出來,利用註解或者xml配置通過aop方式在方法調用前開啓事務,在方法調用結束後commit或者rollback事務

 

對於聲明式事務需要解決如下場景

1)業務A由methodA完成 作爲一個原子操作,在一個事物內完成

2)業務B由methodB完成 作爲一個原子操作,在一個事物內完成

3)業務C  methodC 由methodA, methodB以及其他業務邏輯代碼組成也需要在事務中完成邏輯

   這裏是把methodA, methodB的邏輯都搬到methodC中呢, 這樣重複邏輯太多

   還是在methodC方法中直接調用methodA,methodB

   這裏就需要解決事務的嵌套問題。

發佈了69 篇原創文章 · 獲贊 99 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章