使用步骤
- 引入相关依赖
 
org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1 com.alibaba druid-spring-boot-starter 1.1.10 
- 在application.yml文件中配置数据源
 
spring:
  datasource:
    druid:
      master:
        url: jdbc:mysql://localhost:3306/master
        username: root
        password: root
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        max-active: 20
        initial-size: 1
        max-wait: 60000
        min-idle: 1
        time-between-eviction-runs-millis: 60000
        min-evictable-idle-time-millis: 300000
        validation-query: select 'x'
        test-while-idle: true
        test-on-borrow: false
        test-on-return: false
        pool-prepared-statements: true
        max-open-prepared-statements: 20
      slave:
        url: jdbc:mysql://localhost:3306/slave
        username: root
        password: root
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        max-active: 20
        initial-size: 1
        max-wait: 60000
        min-idle: 1
        time-between-eviction-runs-millis: 60000
        min-evictable-idle-time-millis: 300000
        validation-query: select 'x'
        test-while-idle: true
        test-on-borrow: false
        test-on-return: false
        pool-prepared-statements: true
        max-open-prepared-statements: 20
- 在配置类中配置多数据源
 
@Configuration
public class DataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.druid.master")
    public DataSource masterDataSource() {
        return DruidDataSourceBuilder.create().build();
    }
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.druid.slave")
    public DataSource slaveDataSource() {
        return DruidDataSourceBuilder.create().build();
    }
    @Bean(name = "dynamicDataSource")
    public DynamicDataSource dataSource(DataSource masterDataSource, DataSource slaveDataSource) {
        Map
- 在MyBatis Plus的配置类中配置多数据源
 
@Configuration
@MapperScan(basePackages = "com.example.mapper", sqlSessionTemplateRef = "dynamicSqlSessionTemplate")
public class MybatisPlusConfig {
    @Bean
    public SqlSessionFactory sqlSessionFactory(@Qualifier("dynamicDataSource") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(dataSource);
        return sqlSessionFactory.getObject();
    }
    @Bean
    public SqlSessionTemplate dynamicSqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}
可以帮助开发者实现快速、简单的多数据源访问,只需要按照上述步骤进行配置即可。