最近接手了一个Spring Cloud + Mybatis架构的项目,本身用的是sqlserver的数据库,因为业务需要,需要连接另一个项目的mysql数据库,于是就想到了多数据源配置,费了些时间,终于弄好了,现把流程和注意事项mark一下。
1.首先是Application要加上exclude = {DataSourceAutoConfiguration.class},禁用数据库自动配置。
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableTransactionManagement
public class PromoApiApplication {
public static void main(String[] args) {
SpringApplication.run(PromoApiApplication.class, args);
}
}
2.接下来是第一个数据源配置文件
@Configuration
@MapperScan(basePackages = {"com.xxxxx.xxxx.api.mapper.hos"},
sqlSessionFactoryRef = "sqlSessionFactoryHosDataSource")
public class MybatisHosConfig {
/**
* 自动读取DataSource配置文件
* @return
*/
@Primary
@Bean(name = "hosProperties")
public DataSourceProperties hosProperties() {
return new DataSourceProperties();
}
/**
* 添加@Primary注解,设置默认数据源,事务管理器
* @return
*/
@Primary
@Bean(name = "hosDataSource")
@ConfigurationProp