Spring动态数据源配置
1. xml配置 [代码片段]
<!--动态数据源-->
<bean id="dataSource" class="com.greenline.health.common.dbconfiguration.DynamicDataSource">
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry key="ds001" value-ref="dataSource1"></entry>
<entry key="ds002" value-ref="dataSource2"></entry>
</map>
</property>
<property name="defaultTargetDataSource" ref="ds001"></property>
</bean>
<!-- DataSource定义。 -->
<bean name="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- DataSource定义。 -->
<bean name="dataSource2" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="url" value="${remote.jdbc.url}"/>
<property name="username" value="${remote.jdbc.username}"/>
<property name="password" value="${remote.jdbc.password}"/>
</bean>
<!--mybatis相关配置-->
<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 实例化sqlSessionFactory时需要使用上述配置好的数据源以及SQL映射文件 -->
<property name="dataSource" ref="dataSource"/>
<!-- 自动扫描/src/main/resources/sqlmap和sqlmap2/目录下的所有SQL映射的xml文件, 省掉Configuration.xml里的手工配置 value="classpath:me/gacl/mapping/*.xml"指的是classpath(类路径)下me.gacl.mapping包中的所有xml文件
UserMapper.xml位于me.gacl.mapping包下,这样UserMapper.xml就可以被自动扫描 -->
<property name="mapperLocations">
<array>
<value>classpath*:sqlmap/**/*.xml</value>
<value>classpath*:sqlmap2/**/*.xml</value>
</array>
</property>
<property name="plugins">
<list></list>
</property>
</