spring-boot+mybatis-plus多数据源的情况下无法访问basemapper提供的方法问题
网上看了很多,这里贴一个经测可行的解决方案
@Bean(name = "secondarySqlSessionFactory")
public SqlSessionFactory secondarySqlSessionFactory(@Qualifier("secondaryDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
//读取mybatis xml文件位置
bean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:com/lonelywolf/boot/localdatasource/mydemo/mapper/xml/*.xml"));
return bean.getObject();
}
将SqlSessionFactoryBean实体换为MybatisSqlSessionFactoryBean实体即可访问basemapper
demo源码:https://github.com/1290054578/spring-boot-test.git
- 或者换个姿势
或者采用dynamic-datasource-spring-boot-starter多数据源启动器,可以快速集成mybatis-plus(同一个小组开发的)
代码库地址:https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter
注解快速切换至从库