在实际的公司项目中,很可能会遇到一个问题就是,一个Java项目,但是项目中涉及两个数据库,这两个数据库还在不同IP的机子上。
遇到这种情况的时候,我们有两个选择
1、不走spring的aop方式,直接去多做两个dataSource
2、用spring进行管理,灵活地进行数据源切换
现在就来对第2种方式进行笔记:
spring.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""
xmlns:xsi="" xmlns:aop=""
xmlns:task="" xmlns:tx=""
xmlns:jdbc="" xmlns:context=""
xsi:schemaLocation="
">
<!--配置mysql数据库参数 -->
<context:property-placeholder location="mysql.properties" />
<!--多个数据源配置 -->
<bean
destroy-method="close">
<!-- 连接数据库参数 -->
<property value="${db1.driver}" />
<property value="${db1.url}" />
<property value="${db1.username}" />
<property value="${db1.password}" />
<!--连接池参数 -->
<property value="10" />
<property value="500" />
<property value="40" />
<property value="10" />
</bean>
<bean
destroy-method="close">
<!-- 连接数据库参数 -->
<property value="${db2.driver}" />
<property value="${db2.url}" />
<property value="${db2.username}" />
<property value="${db2.password}" />
<!--连接池参数 -->
<property value="10" />
<property value="500" />
<property value="40" />
<property value="10" />
</bean>
<bean>
<property>
<map key-type="java.lang.String">
<entry key="db1" value-ref="db1" />
<entry key="db2" value-ref="db2" />
</map>
</property>
<property ref="db2" />
</bean>
<!-- mybatis配置 -->
<bean>
<property ref="dataSource" />
<property value="classpath:mybatis/mybatis-config.xml" />
<property value="classpath:mybatis/mapper/*.xml"/>
</bean>
<!--获取sqlSession-->
<bean>
<constructor-arg index="0">
<ref bean="sqlSessionFactory"/>
</constructor-arg>
</bean>
<!-- 事务管理器配置,单数据源事务 -->
<bean
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property ref="dataSource" />
</bean>
</beans>
------------------------------------------------------------------