spring事務配置的五種方式
前段時間對spring的事務配置做了比較深入的研究,在此之間對spring的事務配置雖說也配置過,但是一直沒有乙個清楚的認識。通過這次的學習發覺spring的事務配置只要把思路理清,還是比較好掌握的。
總結如下:
spring配置檔案中關於事務配置總是由三個組成部分,分別是datasource、transactionmanager和**機制這三部分,無論哪種配置方式,一般變化的只是**機制這部分。
datasource、transactionmanager這兩部分只是會根據資料訪問方式有所變化,比如使用hibernate進行資料訪問 時,datasource實際為sessionfactory,transactionmanager的實現為 hibernatetransactionmanager。
具體如下圖:
根據**機制的不同,總結了五種spring事務的配置方式,配置檔案如下:
第一種方式:每個bean都有乙個**
第二種方式:所有bean共享乙個**基類
第三種方式:使用***
第四種方式:使用tx標籤配置的***
第五種方式:全註解
此時在dao上需加上@transactional註解,如下:
spring事務原理
統觀spring
事務,圍繞著兩個核心
platformtransactionmanager
和transactionstatus
spring
提供了幾個關於事務處理的類:
transactiondefinition //
事務屬性定義
transcationstatus //
代表了當前的事務,可以提交,回滾。
platformtransactionmanager
這個是spring
提供的用於管理事務的基礎介面,其下有乙個實現的抽象類
abstractplatformtransactionmanager,
我們使用的事務管理類例如
datasourcetransactionmanager
等都是這個類的子類。
一般事務定義步驟:
transactiondefinition td = new transactiondefinition();
transactionstatus ts = transactionmanager.gettransaction(td);
try
catch(exception e)
spring
提供的事務管理可以分為兩類:程式設計式的和宣告式的。程式設計式的,比較靈活,但是**量大,存在重複的**比較多;宣告式的比程式設計式的更靈活。
程式設計式主要使用
transactiontemplate
。省略了部分的提交,回滾,一系列的事務物件定義,需注入事務管理物件.
void add()
} }
宣告式: 使用
transactionproxyfactorybean:
propagation_required
propagation_required
propagation_required,readonly 圍繞
poxy
的動態**
能夠自動的提交和回滾事務
org.springframework.transaction.interceptor.transactionproxyfactorybean ·
propagation_required--
支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇。 ·
propagation_supports--
支援當前事務,如果當前沒有事務,就以非事務方式執行。 ·
propagation_mandatory--
支援當前事務,如果當前沒有事務,就丟擲異常。 ·
propagation_requires_new--
新建事務,如果當前存在事務,把當前事務掛起。 ·
propagation_not_supported--
以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。 ·
propagation_never--
以非事務方式執行,如果當前存在事務,則丟擲異常。 ·
propagation_nested--
如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則進行與
propagation_required
類似的操作。
Spring事務配置的五種方式
前段時間對spring的事務配置做了比較深入的研究,在此之間對spring的事務配置雖說也配置過,但是一直沒有乙個清楚的認識。通過這次的學習發覺spring的事務配置只要把思路理清,還是比較好掌握的。總結如下 spring配置檔案中關於事務配置總是由三個組成部分,分別是datasource tran...
Spring事務配置的五種方式
前段時間對spring的事務配置做了比較深入的研究,在此之間對spring的事務配置雖說也配置過,但是一直沒有乙個清楚的認識。通過這次的學習發覺spring的事務配置只要把思路理清,還是比較好掌握的。總結如下 spring配置檔案中關於事務配置總是由三個組成部分,分別是datasource tran...
Spring事務配置的五種方式
spring配置檔案中關於事務配置總是由三個組成部分,分別是datasource transactionmanager和 機制這三部分,無論哪種配置方式,一般變化的只是 機制這部分。datasource transactionmanager這兩部分只是會根據資料訪問方式有所變化,比如使用hibern...