使用SSH框架配置多个数据源事务怎么解决?
使用SSH框架配置多个数据源,如何解决事务的问题,是需要每个sessionFactory都配备一个事务还是像我这种情况就可以了
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<!-- Import Apache CXF Bean Definition -->
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!-- 配置多个数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/doltrip">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>
<!-- 所有第三方数据的数据源 -->
<bean id="alldataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/alldata">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>
<!-- 配置驴妈妈的数据源 -->
<bean id="aSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/a">
</property>
<property name="username" value="root"></property>
<property name="password" value="lituo"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<!-- 数据库的连接超时是否启动删除 -->
<property name="removeAbandoned" value="true"></property>
<!-- 数据库的删除数据库连接的超时时长 -->
<property name="removeAbandonedTimeout" value="60"></property>
<property name="logAbandoned" value="true"></property>
</bean>
<!-- 配置sessionFactory -->
<!--
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value> </property> </bean>
-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/doltrip/model/Department.hbm.xml</value>
<value>com/doltrip/model/Employee.hbm.xml</value>
<value>com/doltrip/model/Device.hbm.xml</value>
<value>com/doltrip/model/SdCard.hbm.xml</value>
<value>com/doltrip/model/DeviceType.hbm.xml</value>
<value>com/doltrip/model/Contract.hbm.xml</value>
<value>com/doltrip/model/PhoneDetail.hbm.xml</value>
<value>com/doltrip/model/SimCard.hbm.xml</value>
<value>com/doltrip/model/Customer.hbm.xml</value>
<value>com/doltrip/model/DeviceMatain.hbm.xml</value>
<value>com/doltrip/model/Role.hbm.xml</value>
<value>com/doltrip/model/Bulletin.hbm.xml</value>
<value>com/doltrip/model/User.hbm.xml</value>
<value>com/doltrip/model/Module.hbm.xml</value>
<value>com/doltrip/model/Usersroles.hbm.xml</value>
<value>com/doltrip/model/Acl.hbm.xml</value>
<value>com/doltrip/model/DevsSims.hbm.xml</value>
<value>com/doltrip/model/DeviceOpLog.hbm.xml</value>
<value>com/doltrip/model/Positions.hbm.xml</value>
</list>
</property>
</bean>
<!-- 配置第三方软件sessionFactory -->
<bean id="alldatasessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="alldataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!--
<property name="mappingResources">
<list>
</list>
</property> -->
</bean>
<!-- 配置驴妈妈sessionFactory -->
<bean id="asessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="aSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!--
<property name="mappingResources">
<list>
</list>
</property> -->
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* com.doltrip.service.*.*(..))"
advice-ref="txAdvice" />
</aop:config>
希望能给解决,谢谢了