🔀
一行注解切换数据源
Service 方法上标注 @DS("slave") 即路由到目标库或组;支持 SpEL 动态 key、无注解方案与读写分离插件。
🧩
连接池无侵入集成
原生适配 Druid / HikariCP / BeeCP / DBCP2 / JNDI,全局与单库两级配置,创建即接管。
🧾
本地多库事务
@DSTransactional 在一个事务中绑定多个库的连接统一提交/回滚;另提供 Seata AT/XA 与 Atomikos 集成方案。
🧵
动态数据源管理
运行时增删数据源、懒启动、无数据源启动、数据源清单来自引导库,多租户场景的基石。
30 秒上手
引入 starter、配置多个库、在 Service 上标注解 —— 完成。
1. 配置数据源(第一个 _ 之前是组名)
spring:
datasource:
dynamic:
primary: master
datasource:
master:
url: jdbc:mysql://host1:3306/db
username: root
password: ENC(...)
slave_1:
url: jdbc:mysql://host2:3306/db
username: root
password: ENC(...)
2. 用 @DS 切换
@Service
public class UserServiceImpl implements UserService {
@DS("master")
public void save(User user) {
// 走主库
}
@DS("slave") // slave_1 / slave_2 组内负载均衡
public List<User> listUsers() {
// 走从库组
}
}
依赖坐标(按 Spring Boot 版本三选一)及完整配置说明见 基础必读
AI 时代:把本站知识装进你的 AI 助手
本仓库提供开放格式的 Agent Skill。安装后,AI 编程助手在你的项目里可直接回答「为什么数据源切换失败」等常见问题——安装、配置、排障全链路。
npx skills add baomidou/dynamic-datasource🤖