此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【hbwjz】截止到2008-07-22 12:52:02的历史汇总数据(不包括此帖):
发帖的总数量:1                        发帖的总分数:50                       每贴平均分数:50                       
回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
结贴的总数量:1                        结贴的总分数:50                       
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  
敬礼!

解决方案 »

  1.   

    不只这样是否可以
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
        <!-- jndi datasource 链接A-->
        <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName">
                <value>java:comp/env/a</value>
            </property>
        </bean>
    <!-- jndi datasource 链接B-->
    <bean id="dataSource1" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName">
                <value>java:comp/env/b</value>
            </property>
        </bean>
         <!-- declare transaction management -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
    <bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource1" />
        </bean>
    <!-- a的 Factory-->
        <bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager" ref="transactionManager" />
            <property name="transactionAttributes">
                <props>
                    <prop key="select*">PROPAGATION_REQUIRED,readOnly</prop>
                </props>
            </property>
        </bean>
    <!-- b的 Factory-->
    <bean id="baseTransactionProxy1" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager" ref="transactionManager1" />
            <property name="transactionAttributes">
                <props>
                    <prop key="insert*">PROPAGATION_REQUIRED</prop>
                    <prop key="cancel*">PROPAGATION_REQUIRED</prop>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    <prop key="delete*">PROPAGATION_REQUIRED</prop>
                    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
                </props>
            </property>
        </bean>
        <!-- SqlMap setup for iBATIS Database Layer -->
    <!-- a的 sqlMapClient-->
        <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
            <property name="configLocation" value="WEB-INF/classes/sql-map-config.xml" />
            <property name="dataSource" ref="dataSource" />
        </bean>
    <!-- b的 sqlMapClient-->
    <bean id="sqlMapClient1" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
            <property name="configLocation" value="WEB-INF/classes/sql-map-config.xml" />
            <property name="dataSource" ref="dataSource1" />
        </bean>
    <!-- 操作a的 dao-->
    <bean id="xxxADAO" class="com.xxx.dao.ibatis.SqlMapAXxxDAO">
         <property name="sqlMapClient" ref="sqlMapClient"/>
        </bean>    
    <!-- 操作b的 dao-->
    <bean id="xxxBDAO" class="com.xxx.dao.ibatis.SqlMapBXxxDAO">
         <property name="sqlMapClient" ref="sqlMapClient1"/>
        </bean>
        <!-- declare trans transactionPhoneServiceFacade -->
        <bean id="transactionXxxService" parent="baseTransactionProxy">
         <property name="target">
         <bean class="com.xxx.service.XxxServiceImpl">
         <property name="xxxADAO" ref="xxxADAO"/>
    <property name="xxxBDAO" ref="xxxBDAO"/>
         </bean>
         </property>
        </bean>
    </beans>
      

  2.   

    看看是否满足你的需求,这是spring1.x的配置方式,用2的话更简单点
      

  3.   

    好像是不行,因为我的一个dao里既有select又有insert之类的的方法。
    在service里我肯呢个即调用了select方法,又调用了insert方法,这样我根本没办法区分要用哪个连接(dataSource)
      

  4.   

    如果这样的话,那dao需要分开的,或者如果你确认在一个service的业务方法里面不会出现a和b同时处理的情况的话
    你可以这样来区分,只能修改你的配置文件代码
    <bean id="xxxADAO" class="com.xxx.dao.ibatis.SqlMapAXxxDAO">
            <property name="sqlMapClient" ref="sqlMapClient"/>
            <property name="sqlMapClient1" ref="sqlMapClient1"/>
        </bean>    
    只能这样啦