spring的五種事務配置方式

2021-05-23 16:21:37 字數 2269 閱讀 4305

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