后端框架 · RuoYi-Vue-Plus框架功能扩展功能
多数据源
默认数据库与依赖
框架默认使用 MySQL。如需使用其他数据库,请在 ruoyi-admin 模块的 pom.xml 中增加对应 JDBC 依赖。

补充说明:
- 当前项目的多数据源配置位于各环境配置文件
application-*.yml中的spring.datasource.dynamic。 - 默认主数据源名称为
master,并开启了strict: true,即匹配不到数据源时会直接报错。
多数据源事务
多数据源事务处理请参考 事务相关。
功能概览
多数据源框架官方文档:dynamic-datasource
- 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。
- 支持数据库敏感配置信息 加密 ENC()。
- 支持每个数据库独立初始化表结构schema和数据库database。
- 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。
- 支持 自定义注解 ,需继承DS(3.2.0+)。
- 提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。
- 提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。
- 提供 自定义数据源来源 方案(如全从数据库加载)。
- 提供项目启动后 动态增加移除数据源 方案。
- 提供Mybatis环境下的 纯读写分离 方案。
- 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。
- 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。
- 提供 基于seata的分布式事务方案。
- 提供 本地多数据源事务方案。 附:不能和原生spring事务混用。
用法说明
数据源加载顺序:方法 > 类 > 默认

补充说明:
- 最常见的用法是在 Service 或 Mapper 方法上加
@DS("数据源名")。 - 当前项目生成器模块已经使用了
@DS("#dataName")这类 SpEL 写法,根据参数动态切换数据源。 - 新增数据源后,
@DS中填写的名称必须和配置里的数据源 key 完全一致。
配置示例

补充说明:
- 如果只是增加一个只读库或业务库,通常只需要补充新的
datasource.xxx配置,并在对应方法上标记@DS("xxx")。 - 如果后续要接入 Seata,请同时关注动态数据源代理与 Seata 配置是否一致。
异构数据库
示例:MySQL + Oracle。具体配置请参考官方文档。
