spring事務簡單筆記

2021-08-27 20:28:58 字數 1342 閱讀 6965

spring的特色之一,簡單而強大的事務管理功能,包括程式設計式事務和宣告式事務。

1. spring中涉及到事務管理的api有100多個,核心的只有三個: transactiondefinition、platformtransactionmanager、transactionstatus。所謂事務管理,其實就是「按照給定的事務規則來執行提交或者回滾操作」。「給定的事務規則」就是用 transactiondefinition 表示的,「按照……來執行提交或者回滾操作」便是用 platformtransactionmanager 來表示,而 transactionstatus 用於表示乙個執行著的事務的狀態。

2. transactiondefinition, 該介面在前面已經介紹過,它用於定義乙個事務。它包含了事務的靜態屬性,比如:事務傳播行為、超時時間等等。spring 為我們提供了乙個預設的實現類:defaulttransactiondefinition,該類適用於大多數情況。如果該類不能滿足需求,可以通過實現 transactiondefinition 介面來實現自己的事務定義。

3. platformtransactionmanager 用於執行具體的事務操作。

public inte***ce platformtransactionmanager

根據底層所使用的不同的持久化 api 或框架,platformtransactionmanager 的主要實現類大致如下:

datasourcetransactionmanager :適用於使用jdbc和ibatis進行資料持久化操作的情況。

hibernatetransactionmanager :適用於使用hibernate進行資料持久化操作的情況。

jpatransactionmanager :適用於使用jpa進行資料持久化操作的情況。

另外還有jtatransactionmanager 、jdotransactionmanager、jmstransactionmanager等等。

4. 程式設計式事務需要你在**中直接加入處理事務的邏輯,可能需要在**中顯式呼叫begintransaction()、commit()、rollback()等事務管理相關的方法,如在執行a方法時候需要事務處理,你需要在a方法開始時候開啟事務,處理完後。在方法結束時候,關閉事務. 宣告式的事務的做法是在a方法外圍新增註解或者直接在配置檔案中定義,a方法需要事務處理,在spring中會通過配置檔案在a方法前後攔截,並新增事務. 二者區別.程式設計式事務侵入性比較強,但處理粒度更細. 相當於乙個是手動事務,另乙個是系統自動事務。 程式設計試事務就是需要手工寫**提交事務,回滾事務等。 宣告性事務就是在配置檔案裡面定義一下什麼時候需要事務,到時候系統會自動commit,出異常了自動rollback,不需要在**裡面寫commit或者rollback。

簡單筆記(四)

第二章 型別 運算子與表示式 10.11.25 2.1 變數名 對變數與符號常量的名字存在著一些限制。名字有字幕 與數字組成,但其第乙個字元必須為字母。下劃線 也 被看做是字母,它有時可用於命名比較長的變數以提高 可讀性。由於庫函式通常使用下劃線開頭的名字,因此 不要將這類名字用作變數名。大寫字母與...

UIApplication 簡單筆記

如何取得?很簡單 copy 下面的 code 就好,不會有第二種寫法,也完全不用考量什麼 記憶體管理。2 push notification iphone 3.0 新增的功能,用來唬爛可以滿足部分多工需求的功能。好啦,是真的還不錯 是的!搖晃時 undo 我們都知道 iphone 可以知道自己在旋轉...

LBFGS 簡單筆記

52nlp上無約術最優化的文章 後面提到了乙個無約束最優化的c 實現 sample lbfgs.c lm 計算原函式和梯度fx g d g 計算xnorm,gnorm 判定gnorm xnorm 是否滿足條件 計算step 1 sqrt d d k 1,end 0 進入for迴圈 計算xnorm,g...