mybatis配置多数据源本身很简单,和基本配置差别不大但是如果要配置自动扫描mapper文件,可能会遇到一点儿问题
只有一个数据源时,只需要指定包就可以了,比如
<!-- 扫描映射器,自动创建 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="...*" />
</bean>
而有多个数据源时,还需要指定使用哪一个sqlSession,在mybatis-spring的中文文档中,提到用sqlSessionFactory或sqlSessionTemplate属性来配置数据源,文档:
注意,没有必要去指定SqlSessionFactory或SqlSessionTemplate,因为MapperScannerConfigurer将会创建MapperFactoryBean,之后自动装配。但是,如果你使用了一个以上的DataSource(因此,也是多个的SqlSessionFactory),那么自动装配可能会失效。这种情况下,你可以使用sqlSessionFactory或sqlSessionTemplate属性来设置正确的工厂/模板。
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="..." />
<property name="sqlSessionFactory" ref="fsasSqlSessionFactory"></property>
</bean>
当这样配置时,如果数据源DataSource的属性中使用了properties属性,那么就会报异常:
<!-- 配置dbcp连接池,注意要加入它的第三包jar包 -->
<bean i