我想在配置双数据源 但是不知道该如何配置? 有大神能提供一个Demo 或者文档么?
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<aop:aspectj-autoproxy proxy-target-class="true" />
<!-- <tx:annotation-driven transaction-manager="udataTransactionManager" /> -->
<bean id="udataTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="udataDatastore" />
<bean id="udataDatastore" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url"
value="${udata.jdbc.protocol}://${udata.jdbc.host}:${udata.jdbc.port}/${udata.jdbc.database}?${udata.jdbc.param}" />
<property name="username" value="${udata.jdbc.username}" />
<property name="password" value="${udata.jdbc.password}" />
<property name="driverClassName" value="${udata.jdbc.driver.class}" />
<property name="filters" value="${filters}" />
<property name="maxActive" value="${maxActive}" />
<property name="initialSize" value="${initialSize}" />
<property name="maxWait" value="${maxWait}" />
<property name="minIdle" value="${minIdle}" />
<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
<property name="validationQuery" value="${validationQuery}" />
<property name="testWhileIdle" value="${testWhileIdle}" />
<property name="testOnBorrow" value="${testOnBorrow}" />
<property name="testOnReturn" value="${testOnReturn}" />
<property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
<property name="removeAbandoned" value="${removeAbandoned}" /> <!-- 打开removeAbandoned功能 -->
<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" /> <!-- 1800秒,也就是30分钟 -->
<property name="logAbandoned" value="${logAbandoned}" /> <!-- 关闭abanded连接时输出错误日志 -->
</bean>
<bean id="udataSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="udataDatastore" p:configLocation="classpath:mybatis-config.xml"
p:mapperLocations="classpath:com/ujuit/assetsmanager/stockinfo/mapperEx/*.xml"
/>
<bean id="udataSqlSessionTemplate" scope="prototype" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="udataSqlSessionFactory" />
<constructor-arg index="1" value="SIMPLE" />
</bean>
<bean id="udataBatchSqlSessionTemplate" scope="prototype" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="udataSqlSessionFactory" />
<constructor-arg index="1" value="SIMPLE" /><!-- -BATCH -->
</bean>
<bean id="udataDao" name="udataDao" class="com.ujuit.sysmanager.core.mybatis.impl.DaoImpl"
p:dataType="mysql"
p:sqlSessionTemplate-ref="udataSqlSessionTemplate" />
这样 你可以私聊我我可以教你
<bean id="dataSource1" class="c3p0">
数据库1的相关信息
</bean>
<bean id="dataSource2" class="c3p0">
数据库2的相关信息
</bean>
<bean id="dynaDataSource" class="自己写的一个切换数据源的类">
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry value-ref="dataSource1" key="ORACKE1"></entry>
<entry value-ref="dataSource2" key="ORACKE2"></entry>
</map>
</property>
<property name="defaultTargetDataSource" ref="dataSource1"><property>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dynaDataSource">
这就配置好了双数据源,楼主再加一个spring aop的切面就可以在数据库之间相互切换了,切换的时候以ORACLE1和ORACLE2作为键来取数据的值就行了,加油加油;