Spring的事務配置

2021-06-05 21:09:26 字數 2480 閱讀 4882

前段時間對spring的事務配置做了比較深入的研究,在此之間對spring的事務配置雖說也配置過,但是一直沒有乙個清楚的認識。通過這次的學習發覺spring的事務配置只要把思路理清,還是比較好掌握的。

總結如下:

spring配置檔案中關於事務配置總是由三個組成部分,分別是datasource、transactionmanager和**機制這三部分,無論哪種配置方式,一般變化的只是**機制這部分。

datasource、transactionmanager這兩部分只是會根據資料訪問方式有所變化,比如使用hibernate進行資料訪問時,datasource實際為sessionfactory,transactionmanager的實現為hibernatetransactionmanager。

具體如下圖:

根據**機制的不同,總結了五種spring事務的配置方式,配置檔案如下:

第一種方式:每個bean都有乙個**

xml version="1.0" encoding="utf-8"

?>

<

beans

xmlns

=""xmlns:xsi

=""xmlns:context

=""xmlns:aop

=""xsi:schemalocation

=" /spring-beans-2.5.xsd

/spring-context-2.5.xsd

/spring-aop-2.5.xsd"

>

<

bean

id="sessionfactory"

class

="org.springframework.orm.hibernate3.localsessionfactorybean"

>

<

property

name

="configlocation"

value

="classpath:hibernate.cfg.xml"

/>

<

property

name

="configurationclass"

value

="org.hibernate.cfg.annotationconfiguration"

/>

bean

>

<

bean

id="transactionmanager"

class

="org.springframework.orm.hibernate3.hibernatetransactionmanager"

>

<

property

name

="sessionfactory"

ref="sessionfactory"

/>

bean

>

<

bean

id="userdaotarget"

class

="com.bluesky.spring.dao.userdaoimpl"

>

<

property

name

="sessionfactory"

ref="sessionfactory"

/>

bean

>

<

bean

id="userdao"

class

="org.springframework.transaction.interceptor.transactionproxyfactorybean"

>

<

property

name

="transactionmanager"

ref="transactionmanager"

/>

<

property

name

="target"

ref="userdaotarget"

/>

<

property

name

="proxyinte***ces"

value

="com.bluesky.spring.dao.generatordao"

/>

<

property

name

="transactionattributes"

>

<

props

>

<

prop

key="*"

>

propagation_required

prop

>

props

>

property

>

bean

>

beans

>

第二種方式:所有bean共享乙個**基類

spring 事務配置

自己寫的乙個關於事務的配置例子,很簡單 主要是spring的事務可以借助於aop直接環繞在target屬性所對應操作的周圍。無須為事務寫多餘的 即輕便又減少了耦合。配置檔案部分 bean.xml 由於是簡單的例子所以就不寫那麼規範了 class部分 package com.f9inux.test i...

spring事務配置

1 宣告式事務配置 配置sessionfactory 配置事務管理器 事務的傳播特性 那些類那些方法使用事務 具體配置如下 localsessionfactorybean classpath hibernate.cfg.xml 這個classpath是spring為我們提供的專門用來讀取classp...

配置spring 事務

三 在編寫買書方法 事務的傳播行為 乙個事務方法被另乙個事務方法呼叫,被呼叫的事務方法如何工作在事務中 使用propagation 指定事務的傳播行為,即當前的事務被另乙個事務方法呼叫時 transactional propagation propagation.required override ...