<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    love fish大鵬一曰同風(fēng)起,扶搖直上九萬(wàn)里

    常用鏈接

    統(tǒng)計(jì)

    積分與排名

    friends

    link

    最新評(píng)論

    Spring的事務(wù)管理2.0與1.2.8的區(qū)別(轉(zhuǎn))

    本文章比較了Spring自己帶的JPetStore的例子,通過(guò)配置文件詳細(xì)講解了,Spring1.2.8與2.0如何實(shí)現(xiàn)聲明式事務(wù)管理。


    Spring1.2.8


    Spring以前對(duì)一個(gè)事務(wù)攔截要通過(guò)代理實(shí)現(xiàn)下面的配置文件是從不同的文件中找來(lái)的,不是單獨(dú)的一個(gè)Spring配置文件。


    ?<!-- Transaction manager for a single JDBC DataSource -->
    ?<!-- 聲明一個(gè)事務(wù)管理器 -->
    ?<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    ??<property name="dataSource" ref="dataSource"/>
    ?</bean>


    ?<!-- 聲明一個(gè)抽象Bean,這個(gè)Bean是不能實(shí)例化的,提供給其它需要AOP事務(wù)的Bean用,其它需要AOP事務(wù)的只要繼承這個(gè)Bean就會(huì)被AOP接管-->
    ?<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
    ??? abstract="true">
    ??<property name="transactionManager" ref="transactionManager"/>
    ??<property name="transactionAttributes">
    ???<props>
    ????<prop key="insert*">PROPAGATION_REQUIRED</prop>
    ????<prop key="update*">PROPAGATION_REQUIRED</prop>
    ????<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
    ???</props>
    ??</property>
    ?</bean>

    ?<!-- 繼承之前實(shí)現(xiàn)的抽象Bean,讓這個(gè)Bean通過(guò)代理工廠生成,交給AOP托管。至于哪些方法被接管在控制Bean中已經(jīng)配置了-->
    ?<bean id="petStore" parent="baseTransactionProxy">
    ??<property name="target">
    ???<bean class="org.springframework.samples.jpetstore.domain.logic.PetStoreImpl">
    ????<property name="accountDao" ref="accountDao"/>
    ????<property name="categoryDao" ref="categoryDao"/>
    ????<property name="productDao" ref="productDao"/>
    ????<property name="itemDao" ref="itemDao"/>
    ????<property name="orderDao" ref="orderDao"/>
    ???</bean>
    ??</property>
    ??<!-- Uncomment the following in order to enable mail sending aspect -->
    ??<!--
    ??<property name="postInterceptors">
    ???<list>
    ????<ref bean="emailAdvisor"/>
    ???</list>
    ??</property>
    ???-->
    ?</bean>


    最早發(fā)表于 http://www.openj.cn

    Spring2.0?

    ?下面的配置與上面的配置完全對(duì)應(yīng)

    ?<!--這一個(gè)Bean的配置與之前完全一樣,沒(méi)有變化---->
    ?<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    ??<property name="dataSource" ref="dataSource"/>
    ?</bean>

    ?<!--這一處與之前有了變化,在1.2.8版本中,此處的Bean被聲明為由一個(gè)FactoryBean生成,而此處只是一個(gè)普通的Bean,要簡(jiǎn)單許多,透明性要好很多---->
    ?<bean id="petStore" class="org.springframework.samples.jpetstore.domain.logic.PetStoreImpl">
    ??<property name="accountDao" ref="accountDao"/>
    ??<property name="categoryDao" ref="categoryDao"/>
    ??<property name="productDao" ref="productDao"/>
    ??<property name="itemDao" ref="itemDao"/>
    ??<property name="orderDao" ref="orderDao"/>
    ?</bean>


    ?<!---下面的兩處配置,才是整個(gè)事務(wù)AOP的核心,在1.2.8版本中,通過(guò)FactoryBean把事務(wù)對(duì)象(dataSource),與需要進(jìn)行事務(wù)控制的對(duì)象PetStoreImpl串起來(lái),對(duì)PetStoreImpl有侵入性----->
    ?<!---而在之前的兩處配置中,事務(wù)對(duì)象(dataSource)與,需要進(jìn)行事務(wù)控制的對(duì)象PetStoreImpl沒(méi)有什么關(guān)系,它們的關(guān)系全部體現(xiàn)在下面的兩處配置中----->
    ?
    ?
    ?<!---pointcut屬性定義了哪此點(diǎn)需要去攔截,此處的配置的意思是所有的PetStoreFacade接口中的方法都要攔截,而攔截之后要如何處理則由advice-ref指定的Bean處理----->
    ?<!---配置文件中各個(gè)屬性的含義參考:http://www.redsaga.com/spring_ref/2.0/html/aop.html#aop-schema ----->

    ?<aop:config>
    ??<aop:advisor pointcut="execution(* *..PetStoreFacade.*(..))" advice-ref="txAdvice"/>?
    ?</aop:config>


    ?
    ?<!--下面的transaction-manager屬性原配置中沒(méi)有,如果缺少此配置,默認(rèn)值就是“transactionManager”在此加上,讓人看的更明白。-->
    ?<!-- 參考 http://blog.xmnow.cn/doc/cn/spring2.0-reference_final_zh_cn/ch09s05.html --->
    ?<tx:advice id="txAdvice"? transaction-manager="transactionManager">
    ??<tx:attributes>
    ???<tx:method name="insert*"/>
    ???<tx:method name="update*"/>
    ???<tx:method name="*" read-only="true"/>
    ??</tx:attributes>
    ?</tx:advice>

    posted on 2007-03-30 09:24 liaojiyong 閱讀(620) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Spring

    主站蜘蛛池模板: 亚洲AV无码一区二区三区牲色| 亚洲精品偷拍视频免费观看| 四虎影在线永久免费观看| 最好2018中文免费视频| 水蜜桃亚洲一二三四在线| 97视频热人人精品免费| caoporm超免费公开视频| 337p日本欧洲亚洲大胆色噜噜 | 国产亚洲玖玖玖在线观看| 午夜亚洲福利在线老司机| 国产精品免费看久久久| 亚洲精品无码成人| 久久亚洲国产成人亚| 暖暖日本免费在线视频| a级毛片毛片免费观看永久| 亚洲一区二区三区不卡在线播放| 免费吃奶摸下激烈视频| 16女性下面扒开无遮挡免费| 野花视频在线官网免费1| 亚洲福利视频一区二区三区| 亚洲国产精品成人久久蜜臀| 可以免费看黄的网站| 在线免费观看伊人三级电影| 亚洲日韩国产AV无码无码精品 | 最好2018中文免费视频| 亚洲一卡二卡三卡四卡无卡麻豆 | 亚洲成人黄色在线| 国产亚洲精aa成人网站| 四虎在线免费播放| 91嫩草免费国产永久入口| 男女拍拍拍免费视频网站| 亚洲人成无码网站在线观看| 亚洲精品免费观看| 伊人久久精品亚洲午夜| 免费A级毛片无码久久版| 成年免费大片黄在线观看岛国| 精品成人免费自拍视频| 国产VA免费精品高清在线| 亚洲av无码专区国产不乱码| 亚洲国产精品无码久久久| 久久夜色精品国产嚕嚕亚洲av|