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

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

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

    posts - 82, comments - 269, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    2.0與1.2.8的Spring在事務管理上的區別

    Posted on 2007-03-29 17:20 itspy 閱讀(2168) 評論(0)  編輯  收藏 所屬分類: JAVA技術

    本文章比較了Spring自己帶的例子:JPetStore ,通過配置文件詳細講解了,Spring1.2.8與2.0如何實現聲明式事務管理。


    Spring1.2.8


    Spring以前對一個事務攔截要通過代理實現下面的配置文件是從不同的文件中找來的,不是單獨的一個Spring配置文件。


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


    ?<!-- 聲明一個抽象Bean,這個Bean是不能實例化的,提供給其它需要AOP事務的Bean用,其它需要AOP事務的只要繼承這個Bean就會被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>

    ?<!-- 繼承之前實現的抽象Bean,讓這個Bean通過代理工廠生成,交給AOP托管。至于哪些方法被接管在控制Bean中已經配置了-->
    ?<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>


    最早發表于 http://www.openj.cn

    Spring2.0?

    ?下面的配置與上面的配置完全對應

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

    ?<!--這一處與之前有了變化,在1.2.8版本中,此處的Bean被聲明為由一個FactoryBean生成,而此處只是一個普通的Bean,要簡單許多,透明性要好很多---->
    ?<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>


    ?<!---下面的兩處配置,才是整個事務AOP的核心,在1.2.8版本中,通過FactoryBean把事務對象(dataSource),與需要進行事務控制的對象PetStoreImpl串起來,對PetStoreImpl有侵入性----->
    ?<!---而在之前的兩處配置中,事務對象(dataSource)與,需要進行事務控制的對象PetStoreImpl沒有什么關系,它們的關系全部體現在下面的兩處配置中----->
    ?
    ?
    ?<!---pointcut屬性定義了哪此點需要去攔截,此處的配置的意思是所有的PetStoreFacade接口中的方法都要攔截,而攔截之后要如何處理則由advice-ref指定的Bean處理----->
    ?<!---配置文件中各個屬性的含義參考: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屬性原配置中沒有,如果缺少此配置,默認值就是“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>

    主站蜘蛛池模板: 丰满少妇作爱视频免费观看| 亚洲AV综合色区无码二区爱AV| 亚洲av无码一区二区三区天堂古代| 国产成人无码区免费内射一片色欲 | 亚洲一级在线观看| 777成影片免费观看| 激情内射亚洲一区二区三区| 亚洲一区二区三区高清不卡| 91免费国产在线观看| 亚洲成a人不卡在线观看| 亚洲精品日韩一区二区小说| 丁香花免费完整高清观看| 亚洲中文字幕人成乱码| 日韩一区二区a片免费观看| 亚洲成人高清在线观看| 在线视频免费观看高清| 亚洲精品av无码喷奶水糖心| 免费乱码中文字幕网站| 国产精品视频全国免费观看| 亚洲国产成人高清在线观看| 1000部羞羞禁止免费观看视频| 亚洲乱码在线观看| 国产伦精品一区二区三区免费迷 | 国产免费啪嗒啪嗒视频看看| 黄页网站在线免费观看| 国产亚洲精品资源在线26u| 无码人妻精品中文字幕免费| 亚洲色图古典武侠| 四虎影视免费在线| 特级做a爰片毛片免费看| 亚洲AV无码乱码在线观看裸奔| 久久精品国产免费观看| 在线观看亚洲免费| 国产成人亚洲综合色影视| 日本XXX黄区免费看| 男女猛烈无遮掩视频免费软件| 成人毛片免费观看视频在线| 美女视频黄频a免费观看| 亚洲Av无码精品色午夜| 国产精品美女午夜爽爽爽免费| fc2免费人成在线|