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