前段時間對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 ...