1. 项目背景与核心价值
在真实的企业级应用开发中,多数据源支持几乎是刚需场景。我经历过太多项目因为早期没考虑多数据源导致后期重构的痛苦——从简单的读写分离、分库分表,到多租户架构下的数据隔离,甚至是跨业务系统的数据聚合查询。SpringBoot虽然简化了单数据源配置,但官方并未提供现成的多数据源解决方案。
MyBatis-Plus作为MyBatis的增强工具包,其多数据源模块(dynamic-datasource)真正实现了"配置即用"的体验。最近在金融项目中用它快速实现了交易库+日志库的双源切换,实测单服务支持5个以上数据源仍能保持性能稳定。下面分享这套方案的完整落地过程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 依赖引入关键点
首先在pom.xml中引入核心依赖(以SpringBoot 2.7.x为例):
xml复制<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
注意:切勿同时引入druid-spring-boot-starter,这会导致连接池冲突。dynamic-datasource默认使用HikariCP,如需改用Druid需特殊配置(后文会说明)
2.2 配置文件详解
application.yml的标准配置模板:
yaml复制spring:
datasource:
dynamic:
primary: master # 默认数据源
strict: false # 是否严格匹配数据源
datasource:
master:
url: jdbc:mysql://localhost:3306/main_db
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
slave1:
