前面两个小节记录下了多数据源和 Druid ,本节综合起来,记录下使用 Druid 结合多数据源。跟实际项目更贴切一些。

学习SpringBoot系列 -02- 多数据源
学习SpringBoot系列 -03- 使用Druid数据库连接池

首先,需要结合前面两节的修改内容,也就是增加 properties 配置文件的多数据源配置;然后修改 pom 文件的依赖配置。为方便查看,这里再贴下修改结果。

1. application.properties 中的相关配置

foo.datasource.url=jdbc:h2:mem:foo
foo.datasource.username=sa
foo.datasource.password=

bar.datasource.url=jdbc:h2:mem:bar
bar.datasource.username=sa
bar.datasource.password=

2. pom.xml 中的相关配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.13</version>
</dependency>

3. 数据源类型

同样的,需要对数据源配置类进行添加,可以参考第二小节的内容。
到这里就结束了么?
No…No…No, 如果此时运行程序,你会收到下面这个报错:

...
Caused by: java.lang.IllegalStateException: No supported DataSource type found
...

报错信息提示已经很明显了,dataSource的Type项有错,只需要分别在foobar的数据源配置类中添加下配置即可:

dataSourceProperties.setType(com.alibaba.druid.pool.DruidDataSource.class);

这个时候再跑一下,就正常了。


借着极客时间的付费课程《玩转Spring全家桶》的机会,系统性的对Spring家族做些学习和了解。
如果你也有对这个课程的学习需求,可以通过此链接进行购买,我会得到极客的返利。