SpringBoot多数据源配置
一、背景
最近负责一个项目,需要在SpringBoot中连接多个数据库。这篇博客记录一下Spring Boot集成多个数据库的配置用法。
二、环境设置
本文使用环境如下:
- Spring Boot 2.6.7
- MySQL Connector Java 8.0.28
- 构建工具 Gradle
- baomidou Mybatis-Plus 3.5.1
- baomidou dynamic-datasource-spring-boot-starter 3.5.1
三、初始化项目
使用Spring Initializer新建Spring Boot项目,build.gradle文件配置如下:
1 |
|
application.yml文件如下:
1 |
|
新建两个数据库,配置如下:
story数据库
1 |
|
test数据库
1 |
|
四、编写业务代码
4.1 新建实体类
新建一个Money实体类,代码如下:
1 |
|
4.2 创建Mapper类以及Mapper文件
mapper类
1 |
|
mapper映射
1 |
|
4.3 编写Service
编写MoneyService
1 |
|
编写StoryMoneyService,实现该接口
1 |
|
编写TestMoneyService,实现该接口
1 |
|
注意到我们在Service上添加了注解@DS
,这个注解来自于dynamic-datasource-spring-boot-starter
。在我们进行dao层操作时可以根据不同的数据源灵活切换,从而做到查询不干扰。
除此之外,如果像将相同查询的写到同一个Service下管理,还可以这样实现:
1 |
|
五、测试效果
直接在启动类编写如下代码,查看运行结果:
1 |
|
程序运行结果如下:
1 |
|
六、Spring Boot + Mybatis Plus + JdbcTemplate多数据源配置
讲完上面基于baomidou的多数据源切换方案,我们理解一下通用的Spring Boot多数据源配置如何实现。
6.1 数据库准备
我们创建三个数据库来演示这个案例:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!