這篇文章給大家分享的是有關(guān)spring事務(wù)如何配置的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元北屯做網(wǎng)站,已為上家服務(wù),為北屯各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
采用這種配置策略,完全可以避免增量式配置,所有的事務(wù)代理由系統(tǒng)自動創(chuàng)建。容器中的目標(biāo)bean自動消失,避免需要使用嵌套bean來保證目標(biāo)bean不可被訪問。
這種配置方式依賴于Spring提供的bean后處理器,該后處理器用于為每個bean自動創(chuàng)建代理,此處的代理不僅可以是事務(wù)代理,也可以是任意的代理,只需要有合適的攔截器即可。這些是AOP框架的概念,筆者在此處不對AOP進(jìn)行深入介紹。讀者只需了解這種事務(wù)代理的配置方式即可。
下面是采用BeanNameAutoProxyCreator配置事務(wù)代理的配置文件:
Xml代碼
<?xmlversion="1.0"encoding="gb2312"?>
<!-- Spring配置文件的文件頭,包含DTD等信息-->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--定義數(shù)據(jù)源-->
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 定義數(shù)據(jù)庫驅(qū)動-->
<propertyname="driverClassName"><value>com.MySQL.jdbc.Drivervalue>property>
<!-- 定義數(shù)據(jù)庫url-->
<propertyname="url"><value>jdbc:mysql://localhost:3306/springvalue>property>
<!-- 定義數(shù)據(jù)庫用戶名-->
<propertyname="username"><value>rootvalue>property>
<!-- 定義數(shù)據(jù)庫密碼-->
<propertyname="password"><value>32147value>property>
bean>
<!--定義一個hibernate的SessionFactory-->
<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 定義SessionFactory必須注入DataSource-->
<propertyname="dataSource"><reflocal="dataSource"/>property>
<propertyname="mappingResources">
<list>
<!--以下用來列出所有的PO映射文件-->
<value>Person.hbm.xmlvalue>
list>
property>
<propertyname="hibernateProperties">
<props>
<!--此處用來定義hibernate的SessionFactory的屬性:
不同數(shù)據(jù)庫連接,啟動時選擇create,update,create-drop-->
<propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialectprop>
<propkey="hibernate.hbm2ddl.auto">updateprop>
props>
property>
bean>
<!-- 定義事務(wù)管理器,使用適用于Hibernte的事務(wù)管理器-->
<beanid="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- HibernateTransactionManager bean需要依賴注入一個SessionFactory bean的引用-->
<propertyname="sessionFactory"><reflocal="sessionFactory"/>property>
bean>
<!-- 配置事務(wù)攔截器-->
<beanid="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事務(wù)攔截器bean需要依賴注入一個事務(wù)管理器 -->
<propertyname="transactionManager"ref="transactionManager"/>
<propertyname="transactionAttributes">
<!-- 下面定義事務(wù)傳播屬性-->
<props>
<propkey="insert*">PROPAGATION_REQUIREDprop>
<propkey="find*">PROPAGATION_REQUIRED,readOnlyprop>
<propkey="*">PROPAGATION_REQUIREDprop>
props>
property>
bean>
<!-- 定義BeanNameAutoProxyCreator,該bean是個bean后處理器,無需被引用,因此沒有id屬性
這個bean后處理器,根據(jù)事務(wù)攔截器為目標(biāo)bean自動創(chuàng)建事務(wù)代理
<beanclass="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
指定對滿足哪些bean name的bean自動生成業(yè)務(wù)代理 -->
<propertyname="beanNames">
<!-- 下面是所有需要自動創(chuàng)建事務(wù)代理的bean-->
<list>
<value>personDaovalue>
list>
<!-- 此處可增加其他需要自動創(chuàng)建事務(wù)代理的bean-->
property>
<!-- 下面定義BeanNameAutoProxyCreator所需的事務(wù)攔截器-->
<propertyname="interceptorNames">
<list>
<value>transactionInterceptorvalue>
<!-- 此處可增加其他新的Interceptor -->
list>
property>
bean>
<!--定義DAO Bean ,由于BeanNameAutoProxyCreator自動生成事務(wù)代理-->
<beanid="personDao"class="lee.PersonDaoHibernate">
<propertyname="sessionFactory"><reflocal="sessionFactory"/>property>
bean>
beans>
感謝各位的閱讀!關(guān)于“spring事務(wù)如何配置”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
文章名稱:spring事務(wù)如何配置
本文網(wǎng)址:http://jinyejixie.com/article34/iisgpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、網(wǎng)站收錄、企業(yè)建站、定制開發(fā)、App設(shè)計、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)