1. 多数据源配置的现实需求
在实际企业级应用开发中,我们经常会遇到需要同时操作多个数据库的场景。比如电商系统中,订单数据可能存储在MySQL集群,用户行为日志可能写入MongoDB,而风控数据又需要从Oracle中读取。传统的单数据源配置显然无法满足这种复杂需求。
我最近在重构一个供应链管理系统时就遇到了类似问题。系统需要同时对接:
- 主业务数据库(MySQL 8.0)
- 历史数据归档库(MySQL 5.7)
- 第三方ERP系统的SQL Server数据库
如果为每个数据源都单独维护一套Mapper和Service层,不仅代码冗余,维护成本也会成倍增加。这正是MyBatis-Plus多数据源功能大显身手的时候。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础环境搭建
2.1 依赖配置
首先确保项目中已引入MyBatis-Plus和多数据源核心依赖:
xml复制<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
注意:dynamic-datasource-spring-boot-starter是MyBatis-Plus团队基于Spring Boot的自动配置方案,比原生方案更简洁。
2.2 数据源配置
在application.yml中配置多个数据源:
yaml复制spring:
datasource:
dynamic:
primary: master # 设置默认数据源
datasource:
master:
url: jdbc:mysql://localhost:3306/main_db
