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

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


    網站導航:
     
    主站蜘蛛池模板: 97久久精品亚洲中文字幕无码 | 亚洲精品免费观看| 亚洲午夜av影院| 老妇激情毛片免费| 亚洲国产精品一区二区第一页免| 国产精品亚洲精品久久精品| 欧洲美熟女乱又伦免费视频 | 国产亚洲精久久久久久无码AV| 国产偷国产偷亚洲高清在线| 免费一级特黄特色大片在线| 一级做a毛片免费视频| 亚洲色欲久久久综合网| a国产成人免费视频| 久久精品国产亚洲香蕉| 亚洲人成在线免费观看| 亚洲免费在线观看视频| 成年女人免费视频播放77777| 亚洲精品无码久久久久YW| 男人的天堂亚洲一区二区三区 | 亚洲校园春色小说| 国产免费av片在线看| 亚洲AV综合永久无码精品天堂| 又黄又大又爽免费视频| 成人一区二区免费视频| 亚洲综合无码一区二区| 永久免费毛片在线播放| 美女扒开尿口给男人爽免费视频| 亚洲色偷拍区另类无码专区| 精品一区二区三区免费| 99999久久久久久亚洲| 国产在线观看免费不卡| 91福利免费网站在线观看| 久久精品国产99国产精品亚洲| 免费一级毛片不卡在线播放| 三年片在线观看免费| 亚洲videos| 亚洲中文字幕久久精品无码APP| 免费观看黄色的网站| 青青草国产免费国产是公开| 久久久久亚洲AV无码永不| 国产精品极品美女免费观看|