1. RuoYi-Vue-Plus多数据源配置概述
在现代企业级应用开发中,多数据源支持已成为刚需。RuoYi-Vue-Plus作为基于Spring Boot和Vue.js的快速开发框架,通过集成dynamic-datasource-spring-boot-starter组件,为开发者提供了简洁高效的多数据源解决方案。这套方案的核心价值在于:只需通过YAML配置声明数据源,再配合@DS注解即可实现数据源动态切换,无需编写繁琐的底层连接管理代码。
我在实际项目中使用该方案时发现,它特别适合以下场景:
- 读写分离架构(主库写,从库读)
- 多租户系统中不同租户数据隔离
- 需要同时访问多种异构数据库(如MySQL+Oracle)
- 分库分表场景下的数据路由
与传统的AbstractRoutingDataSource方案相比,dynamic-datasource具有配置简单、切换灵活、监控完善等优势。其底层采用HikariCP连接池,默认提供了连接泄漏检测、空闲连接回收等生产级特性,这在处理高并发请求时尤为重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 多数据源详细配置指南
2.1 基础环境准备
在开始配置前,请确保项目满足以下条件:
- JDK 1.8+
- Maven 3.5+
- RuoYi-Vue-Plus 5.x版本
- 已正确配置Spring Boot和MyBatis-Plus
提示:建议使用IDE的YAML插件(如IntelliJ IDEA的YAML/Ansible支持)来编辑配置文件,避免缩进错误导致的解析问题。
2.2 数据源配置文件详解
在application.yml中配置多数据源时,需要重点关注spring.datasource.dynamic节点。以下是一个生产级配置示例,包含主从库和异构数据库:
yaml复制spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
dynamic:
primary: master # 默认数据源
strict: true # 启用严格模式
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://master.db:3306/core_db?useSSL=false&allowPublicKeyRetrieval=true
username: app_user
password: ${DB_MASTER_PWD:default_pwd}
hikari:
pool-name: MASTER_POOL
maximum-pool-size: 30
minimum-idle: 10
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
validation-timeout: 5000
connection-test-query: SELECT 1
slave1:
lazy: true
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://slave1.db:3306/core_db?us
