學習筆記 Spring事務管理

2021-10-25 18:13:04 字數 3083 閱讀 9610

platformtransationmanager

spring提供了乙個事務管理器介面platformtransationmanager,該介面包含了三個方法:

在開發中,根據應用的技術不同,使用不同的實現類

springjdbc / ibatis:org.springframework.jdbc.datasource.datasourcetransactionmanager

hibernate:org.springframework.orm.hibernate5.hibernatetransactionmanager

transactionmanager

transactionmanager是事務資訊物件,定義了與事務資訊相關的方法

transactionmanager的隔離級別和傳播行為

隔離級別

事務傳播行為

required:如果當前沒有事務,就新建乙個事務,如果已經存在乙個事務中,加入到這個事務中。一般的選擇(預設值)

supports:支援當前事務,如果當前沒有事務,就以非事務方式執行(沒有事務)

mandatory:使用當前的事務,如果當前沒有事務,就丟擲異常

requers_new:新建事務,如果當前在事務中,把當前事務掛起。

not_supported:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起

never:以非事務方式執行,如果當前存在事務,丟擲異常

nested:如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則執行 required 類似的操作。

事務超時時間:預設-1沒有時間限制,以秒為單位

xmlns

=""xmlns:xsi

=""xmlns:aop

=""xmlns:tx

=""xsi:schemalocation="

/spring-beans.xsd

/spring-tx.xsd

/spring-aop.xsd"

>

jdbc事務

如果應用程式中直接使用jdbc來進行持久化,datasourcetransactionmanager會為你處理事務邊界。為了使用datasourcetransactionmanager,你需要使用如下的xml將其裝配到應用程式的上下文定義中:

配置事務管理器

"transactionmanager"

class

="org.springframework.jdbc.datasource.datasourcetransactionmanager"

>

name

="datasource"

ref="datasource"

/>

bean

>

配置事務的屬性

<

tx:adviceid=

"adviceid"

transaction-manager

="transactionmanager"

>

<

tx:attributes

>

<

tx:method

name

="transfer"

isolation

="repeatable_read"

propagation

="required"

read-only

="false"

timeout

="-1"

/>

tx:attributes

>

tx:advice

>

配置aop切入點表示式及與事務通知的對應關係

<

aop:config

>

<

aop:pointcutid=

"transfer"

expression

="execution(* com.glc.service.accountserviceimpl.*(..))"

/>

<

aop:advisor

advice-ref

="adviceid"

pointcut-ref

="transfer"

/>

aop:config

>

"transactionmanager"

class

="org.springframework.jdbc.datasource.datasourcetransactionmanager"

>

name

="datasource"

ref="datasource"

/>

bean

>

<

tx:annotation-driven

transaction-manager

="transactionmanager"

/>

註解

@transactional(isolation = isolation.repeatable_read ,propagation = propagation.required ,timeout = -1)
註解配置在需要事務管理的類上或方法上

Spring 學習筆記之事務管理

一 事務的特性 事務有四個特性 原子性 一致性 隔離性和永續性。二 spring事務管理只要包括的三個介面 1 platform transactionmanager 事務管理器 2 transactiondefinition 事務的定義資訊 隔離 傳播 超時 唯讀 3 transactionsta...

Spring事務管理

spring是ssh中的管理員,負責管理其它框架,協調各個部分的工作。今天一起學習一下spring的事務管理。spring的事務管理分為宣告式跟程式設計式。宣告式就是在spring的配置檔案中進行相關配置 程式設計式就是用註解的方式寫到 裡。下面先說宣告式 spring配置檔案中關於事務配置總是由三...

spring事務管理

一 xml配置事務 二 註解的方式配置事務 bean id txmanaager class org.springframework.orm.hibernate3.hibernatetransactionmanager property name sessionfactory ref session...