<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 閱讀(109) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 免费一级特黄特色大片| 亚洲线精品一区二区三区影音先锋| 亚洲午夜一区二区三区| 亚洲短视频在线观看| 亚洲乱码无限2021芒果| 真人无码作爱免费视频| 国产性生大片免费观看性| 无码av免费网站| 成人性生交大片免费看午夜a| 免费看小12萝裸体视频国产| 最新亚洲成av人免费看| 亚洲人成影院77777| 妻子5免费完整高清电视| 亚洲精品国精品久久99热| 亚洲精品无码久久久久久久| 精品香蕉在线观看免费| 国产成人亚洲精品91专区手机 | 亚洲欧洲久久久精品| 一区二区免费电影| 久久精品免费全国观看国产| 国产成人精品日本亚洲直接| 成人永久免费高清| 亚洲天堂中文字幕| 精品成人一区二区三区免费视频| 午夜国产羞羞视频免费网站| 成人自慰女黄网站免费大全| 亚洲国产精品婷婷久久| 成人免费AA片在线观看| 亚洲国产二区三区久久| 免费可以在线看A∨网站| 亚洲午夜免费视频| 女人18一级毛片免费观看| 亚洲视频在线观看网址| A片在线免费观看| 亚洲国产精品成人| 亚洲国产成人无码AV在线| 久草视频免费在线| yellow视频免费在线观看| 亚洲成人中文字幕| 无码免费一区二区三区免费播放 | 国产午夜不卡AV免费|