【附源码】Spring Boot实战系列——二、配置多个数据源(H2数据库)

2,201 阅读1分钟

【附源码】Spring Boot实战系列——一、配置内存数据库H2
【附源码】Spring Boot实战系列——二、配置多个数据源(H2数据库)
【附源码】Spring Boot实战系列——三、配置多个数据源(Mysql数据库)
【附源码】Spring Boot实战系列——四、日志管理
【附源码】Spring Boot实战系列——五、事务抽象
【附源码】Spring Boot实战系列——六、货币存数据库的处理

引入H2依赖

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

代码结构

添加目录dataSourceConfig,再在目录下添加两个数据源的配置文件BarConfig、FooConfig

数据源配置文件

  • 获取数据源配置信息
  • 根据配置信息,生成数据源
  • 根据数据源设置事务管理

BarConfig.java

@Slf4j
@Configuration
public class BarConfig {
    @Bean
    @ConfigurationProperties("bar.datasource")
    public DataSourceProperties barDatasourceProperties(){
        return new DataSourceProperties();
    }


    @Bean
    public DataSource barDataSource(){
        DataSourceProperties dataSourceProperties = barDatasourceProperties();
        log.info("bar datasource: {}", dataSourceProperties.getUrl());
        return dataSourceProperties.initializeDataSourceBuilder().build();
    }


    @Bean
    @Resource
    public PlatformTransactionManager barTxManager(DataSource barDataSource){
        return new DataSourceTransactionManager(barDataSource);
    }

排除自动配置

  • 排除数据源的自动配置
  • 排除数据源事务管理的自动配置
  • 排除JdbcTemplate的自动配置
@SpringBootApplication(exclude = {
                DataSourceAutoConfiguration.class,
                DataSourceTransactionManagerAutoConfiguration.class,
                JdbcTemplateAutoConfiguration.class
        })

运行结果

源码下载地址:

github.com/qiulanzhu/S…