spring 事務的總結

2021-08-05 19:52:05 字數 1064 閱讀 1848

1. 初識事務

事務就是對資料資源進行可控的一組訪問操作。為保證事務執行前後,資料資源所承載的系統狀態所處於正確的狀態,事務本身有四個屬性:原子 性,一致性,隔離性和永續性。

原子性:原子性要求所有操作是乙個整體,要麼全部提交,要麼全部失敗。

一致性:要求事務對資料資源執行一致性檢查,事務提交之前是處於某個資料一致性狀態,事務提交後是處於某個資料性一致狀態。

隔離性:主要規定各個事務互相影響程度,主要是面對資料資源的併發訪問,當多個事務對資料資源進行訪問,不同的隔離級別影響的效果不一樣。

四種型別的隔離級別:

read uncommit :它是最低的隔離級別,乙個事務讀取另乙個事務更新但沒提交的結果,其本身會遇到幾個問題;髒讀,如果乙個事務對資料進行了更新,但事務沒提交,但該事務看到了最新的結果,如果該事務回滾,第二個事務看到的資料就是髒資料;

不可重複讀取,指乙個事務對同一資料資源進行讀取,第一次讀取該資料資源時,事務2沒對該資料資源進行更新,第二次讀取時,事務2對該資料資源進行更新,二次讀取的資料結果不一樣,這就是不可重複讀取。

幻讀,指同樣乙個查詢 ,在整個事務的執行過程中,多次查詢的資料結果是不一樣的。

read commit :指乙個事務對資料資源進行更新提交之後,另一事務才能讀取到它更新的結果,可以避免髒讀,但無法避免不可重複讀和幻讀。

repeatable read :在整 個事務過程中,對同一筆資料的讀取結果是相同,不管其它事務對該資料資源進行更新事務提交與否,它可避免髒讀和不可重複讀取。

serializable:是整個事務最嚴歷的隔離級別,所有的事務操作都是依次順序來執行,可以避免其它的隔離級別遇到的問題,但它性也是最低的。

2. jta和jca分布式事務

3. 事務的三個介面:transactiondefinition 、transactionstatus、platformtransac-tionmananager

4.  使用spring進行事務管理

程式設計事務管理:使用platformtransac-tionmanager事務管理和transactiontemp-late

宣告事務管理:xml元資料宣告事務管理和註解驅動式宣告事務管理

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 會...