<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 三年片在线观看免费大全电影| 一区二区3区免费视频| 久久久久久AV无码免费网站| 亚洲人成无码网WWW| 野花视频在线官网免费1| 免费在线一级毛片| 青青久久精品国产免费看| 亚洲国产成人久久综合区| 一个人看的www免费高清| 久久亚洲中文字幕精品一区| 中文字幕无线码免费人妻| 国产亚洲一区二区手机在线观看| 国产成人免费ā片在线观看老同学 | 操美女视频免费网站| 香蕉蕉亚亚洲aav综合| 一级毛片全部免费播放| 亚洲三级在线播放| 免费真实播放国产乱子伦| 美女被免费网站91色| 亚洲AV人人澡人人爽人人夜夜| 亚洲视频在线免费看| 亚洲欧美国产国产一区二区三区| 国产免费小视频在线观看| 曰批免费视频播放免费| 亚洲国产成人一区二区三区| 色欲国产麻豆一精品一AV一免费| 亚洲人成免费电影| 免费一级毛片清高播放| 久久免费福利视频| 中文字幕 亚洲 有码 在线| 亚洲国产精品专区在线观看| 国产免费爽爽视频在线观看| 亚洲国产日韩女人aaaaaa毛片在线| 成人永久福利免费观看| 97超高清在线观看免费视频| 亚洲激情视频图片| 在线精品亚洲一区二区三区| 亚洲无砖砖区免费| 日日摸夜夜添夜夜免费视频| 久久av无码专区亚洲av桃花岛| 日韩免费视频在线观看|