该方式是利用不同数据源扫描不同的mapper配置文件和mapper接口,来达到配置多个数据源。
spring 数据源的配置
<!-- 获取jndi数据源 mysql -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" primary="true">
<property name="jndiName">
<value>java:comp/env/jdbc/userTest</value>
</property>
</bean>
<!--基于注解的事务管理-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- spring和MyBatis整合 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:mybatis/mapper/userTest/*.xml" />
</bean>
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.xx.**.dao.userTest" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
<!-- datasource2 -->
<bean id="dataSource_source2" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/orderTest</value>
</property>
</bean>
<bean id="sqlSessionFactory_source2" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource_source2" />
<property name="mapperLocations" value="classpath:mybatis/mapper/orderTest/*.xml" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.cdel.**.dao.orderTest" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_source2" />
</bean>