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

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

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

    posts - 495,  comments - 11,  trackbacks - 0

    3聲明式管理Hibernate分布式事務

    通過Spring,還可以很方便地切換至另一種事務管理策略。比如需要提供分布式事務管理策略時,只要替換一下配置即可,如代碼10.29所示。

    代碼10.29 appContext-jta.xml

    <beans>

    <bean id="transactionManager"

    class="org.springframework.transaction.jta.JtaTransactionManager">

    ??? <property name="sessionFactory" >

    ????? <ref bean="sessionFactory" />

    ??? </property>

    </bean>

    <bean id="myDataSource1"

    class="org.springframework.jndi.JndiObjectFactoryBean">

    ????? <property name="jndiName">

    ????????? <value>java:comp/env/jdbc/myds1</value>

    ????? </property>

    </bean>

    <bean id="myDataSource2"

    class="org.springframework.jndi.JndiObjectFactoryBean">

    ????? <property name="jndiName">

    ????????? <value>java:comp/env/jdbc/myds2</value>

    ????? </property>

    </bean>

    <bean id="sessionFactory1"

    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

    ??? <property name="dataSource" ref="myDataSource1"/>

    ??? <property name="configLocations">

    ????? <value>hibernate.cfg1.xml</value>

    ??? </property>

    </bean>

    <bean id="sessionFactory2"

    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

    ??? <property name="dataSource" ref="myDataSource2"/>

    ??? <property name="configLocations">

    ????? <value>hibernate.cfg2.xml</value>

    ??? </property>

    </bean>

    <bean id="dao1"

    class="daopackage1.DaoImpl">

    ??? <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

    <bean id="dao2"

    class="daopackage2.DaoImp2">

    ??? <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

    </beans>

    <bean id="business" class="businesspackage.BusinessFacadeImpl">

    ??? <property name="dao1">

    ????? <ref bean="dao1"/>

    ??? </property>

    ??? <property name="dao2">

    ????? <ref bean="dao2"/>

    ??? </property>

    </bean>

    <bean id="businessProxy"

    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

    ??? <property name="transactionManager">

    ????? <ref bean="transactionManager" />

    ??? </property>

    ??? <property name="target">

    ????? <ref bean="business" />

    ??? </property>

    ??? <property name="transactionAttributes">

    ????? <props>

    ??????? <prop key="business*">PROPAGATION_REQUIRED</prop>

    ??????? <prop key="someOtherBusiness*">PROPAGATION_MANDATORY</prop>

    ????? </props>

    ??? </property>

    </bean>

    </beans>

    可以看到,對于橫跨多個Hibernate SessionFacotry的分布式事務,只需簡單地將JtaTransactionManagerLocalSessionFactoryBean的定義結合起來就可以了,其中每個DAO通過bean屬性得到各自的SessionFactory引用。

    說明:如果所有底層數據源都是支持事務的容器,那么只需要對一個業務對象應用JtaTransactionManager策略,該對象就可以橫跨多個DAO和多個Session Factory來劃分事務了。使用Spring的最大好處就是,可通過配置來聲明式地管理事務,無需對應用代碼作任何改動。

    posted on 2009-07-27 01:52 jadmin 閱讀(104) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 在线看片v免费观看视频777| 日韩午夜免费视频| 动漫黄网站免费永久在线观看| 在线免费观看色片| 国产亚洲精品观看91在线| 亚洲一级特黄特黄的大片| 一区二区三区免费在线观看| 69影院毛片免费观看视频在线| 国产精品免费视频一区| 亚洲福利视频网站| 国产在线观看无码免费视频| 在线A级毛片无码免费真人| 亚洲人av高清无码| 免费毛片a在线观看67194 | 四虎影院在线免费播放| 亚洲五月综合网色九月色| 大陆一级毛片免费视频观看| 久久无码av亚洲精品色午夜 | 午夜无遮挡羞羞漫画免费| 亚洲人成影院在线无码按摩店| 亚洲码欧美码一区二区三区| 日本一道高清不卡免费| 七次郎成人免费线路视频| 国产精一品亚洲二区在线播放| 午夜免费啪视频在线观看| 亚洲精品无码久久久久| 免费无码中文字幕A级毛片| 亚洲色中文字幕无码AV| 在线观看免费av网站| 亚洲福利视频一区| 野花香高清视频在线观看免费| 中文字幕不卡亚洲| yellow视频免费看| 亚洲男人天堂av| 91精品视频在线免费观看| 天堂亚洲国产中文在线| 国产精品成人免费一区二区| 亚洲国产成人久久精品app| 麻花传媒剧在线mv免费观看| 亚洲国产AV无码一区二区三区| 精品国产一区二区三区免费看|