datai/docs/index.md

113 lines
5.7 KiB
Markdown
Raw Normal View History

feat: 实现动态数据源延迟加载功能 (2026-01-21-001) ## 功能概述 - 实现动态数据源的延迟加载机制,支持应用启动时只加载主库,从库按需动态加载和切换 - 从库配置存储在主库中,支持运行时灵活切换从库库名 - 使用现有的 @DataSource 注解进行数据源切换,业务代码无需修改 ## 新增功能 - 动态数据源管理接口 IDynamicDataSourceManager - 动态数据源服务接口 IDynamicDataSourceService - 动态数据源服务实现 DynamicDataSourceServiceImpl - 数据源管理控制器 DatasourceController - 数据源配置表 sys_datasource_config ## 新增文档 - 需求文档: docs/requirements/2026-01-21-001-动态数据源延迟加载.md - 设计文档: docs/design/2026-01-21-001-动态数据源延迟加载设计.md - 决策记录: docs/decisions/2026-01-21-001-ADR-动态数据源延迟加载.md - SQL 脚本: docs/sql/2026-01-21-001-sys_datasource_config.sql - 提示词: docs/prompts/2026-01-21-001-动态数据源延迟加载代码生成提示词.md - 会话记录: docs/sessions/2026-01-21-001-session.md - 变更日志: docs/changelog/2026-01-21-001-changelog.md - 复盘文档: docs/retros/2026-01-21-001-retro.md - API 文档: docs/api-docs/2026-01-21-001-api.md - 根目录变更日志: CHANGELOG.md ## 修改功能 - 扩展 DataSourceManager 类,添加动态数据源管理方法 - 扩展 SysDatasourceConfigMapper 接口,添加 selectSysDatasourceConfigByDsName 方法 - 更新项目索引和 Authentication.canvas ## 修复问题 - 修复循环依赖问题:创建 IDynamicDataSourceManager 接口解决 datai-system 和 datai-framework 互相依赖 - 修复导入错误:删除 DynamicDataSourceServiceImpl 中未使用的导入 - 修复异常处理:将 setFilters() 调用移到 try-catch 块内 ## API 接口 - POST /system/datasource/loadSlave - 加载从库数据源 - POST /system/datasource/switchSlave/{dbName} - 切换从库库名 - GET /system/datasource/getSlaveConfig - 获取从库配置 - POST /system/datasource/switch/{dsName} - 切换数据源 - DELETE /system/datasource/{dsName} - 移除数据源
2026-01-21 18:24:24 +08:00
# 项目单一真源
## 元数据
- 项目名称datai
- 创建时间2026-01-21
- 版本1.0.0
- 状态:初始化
## 项目概述
datai 是一个基于 Spring Boot 的项目采用文档驱动开发Documentation-Driven Development模式通过"单一真源"Single Source of Truth原则管理项目的所有信息。
## 技术栈
- 后端框架Spring Boot
- Java 版本Java 8+
- 数据库MySQL (Druid连接池)
- ORM框架MyBatis
- 缓存Redis/Ehcache
- 工作流Flowable
- 认证授权OAuth2/JustAuth
- 其他技术Netty、WebSocket、RabbitMQ等
## 目录索引
### 核心文档
- [Authentication.canvas](./Authentication.canvas) - 项目组件可视化
### 文档目录
- [API 文档](./api-docs/README.md) - API 相关文档
- [变更日志](./changelog/README.md) - 变更日志
- [决策记录](./decisions/README.md) - 决策记录ADR
- [设计文档](./design/README.md) - 设计稿或架构设计
- [实施方案](./implementation/README.md) - 实施方案
- [业务逻辑](./method-logic/README.md) - 业务逻辑或算法逻辑
- [AI 提示词](./prompts/README.md) - AI 提示词库
- [参考代码](./reference-code/README.md) - 参考代码
- [需求文档](./requirements/README.md) - 需求文档
- [复盘文档](./retros/README.md) - 复盘与回顾
- [会话记录](./sessions/README.md) - 会议或对话记录
- [技能资料](./skill/README.md) - 技能相关资料
- [数据库脚本](./sql/README.md) - 数据库脚本
### Prompt 目录
- [元提示词](./Prompt/0001-元提示词.md) - 终极提示词架构师
- [创建 Trae 项目规则](./Prompt/0002-创建-trae-项目规则.md) - Trae 项目规则生成
- [需求澄清提示词](./Prompt/0003-需求澄清提示词.md) - 需求澄清专家
- [单一真源文档驱动架构师](./Prompt/0004-单一真源文档驱动架构师.md) - 文档驱动架构师
- [项目单一真源初始化专家](./Prompt/0005-项目单一真源初始化专家.md) - 项目初始化专家
- [API文档提示词](./Prompt/0006-api-docs-提示词.md) - API文档生成提示词
- [变更日志提示词](./Prompt/0007-changelog-提示词.md) - 变更日志生成提示词
- [决策记录提示词](./Prompt/0008-decisions-提示词.md) - 决策记录生成提示词
- [设计文档提示词](./Prompt/0009-design-提示词.md) - 设计文档生成提示词
## 模块索引
- [datai-admin](./../datai-admin/) - 管理后台模块
- [datai-common](./../datai-common/) - 通用工具模块
- [datai-framework](./../datai-framework/) - 核心框架模块
- [datai-models](./../datai-models/) - 模型模块集合
- datai-flowable - 工作流模块
- datai-form - 表单模块
- datai-generator - 代码生成器模块
- datai-message - 消息模块
- datai-online - 在线开发模块
- datai-quartz - 定时任务模块
- [datai-plugins](./../datai-plugins/) - 插件模块集合
- datai-atomikos - Atomikos事务管理
- datai-cache-ehcache - Ehcache缓存实现
- datai-cache-redis - Redis缓存实现
- datai-mybatis-interceptor - MyBatis拦截器
- datai-mybatis-jpa - MyBatis JPA支持
- datai-mybatis-plus - MyBatis Plus支持
- datai-netty - Netty通信框架
- datai-rabbitmq - RabbitMQ消息队列
- datai-websocket - WebSocket支持
- [datai-scenes](./../datai-scenes/) - 场景模块集合
- datai-scene-auth - 认证场景模块
- datai-scene-file - 文件场景模块
- datai-scene-pay - 支付场景模块
- [datai-system](./../datai-system/) - 系统核心模块
## 需求追踪
- [2026-01-21-001-动态数据源延迟加载](./requirements/2026-01-21-001-动态数据源延迟加载.md) - 实现动态数据源的延迟加载机制,支持应用启动时只加载主库,从库按需动态加载和切换 - 已完成
- [设计文档](./design/2026-01-21-001-动态数据源延迟加载设计.md) - 动态数据源延迟加载技术方案设计
- [架构决策](./decisions/2026-01-21-001-ADR-动态数据源延迟加载.md) - ADR-001: 动态数据源延迟加载架构决策
- [数据库脚本](./sql/2026-01-21-001-sys_datasource_config.sql) - 数据源配置表 SQL 文档
- [代码生成提示词](./prompts/2026-01-21-001-动态数据源延迟加载代码生成提示词.md) - 动态数据源延迟加载代码生成专用提示词
- [会话记录](./sessions/2026-01-21-001-session.md) - 动态数据源延迟加载开发会话记录
- [变更日志](./changelog/2026-01-21-001-changelog.md) - 动态数据源延迟加载变更记录
- [复盘文档](./retros/2026-01-21-001-retro.md) - 动态数据源延迟加载复盘文档
- [API 文档](./api-docs/2026-01-21-001-api.md) - 动态数据源延迟加载 API 文档
## 更新日志
- 2026-01-21: 初始化项目单一真源结构
- 2026-01-21: 新增需求 - 动态数据源延迟加载
- 2026-01-21: 新增设计文档 - 动态数据源延迟加载技术方案
- 2026-01-21: 新增架构决策 - ADR-001: 动态数据源延迟加载
- 2026-01-21: 新增数据库脚本 - sys_datasource_config 表
- 2026-01-21: 新增代码生成提示词 - 动态数据源延迟加载
- 2026-01-21: 新增变更日志 - 动态数据源延迟加载变更记录
- 2026-01-21: 新增复盘文档 - 动态数据源延迟加载复盘
- 2026-01-21: 新增 API 文档 - 动态数据源延迟加载 API
## 使用说明
1. 本文档是项目的单一真源,包含项目的所有信息
2. 每个模块都有对应的 index.md 作为模块的单一真源
3. 所有文档都通过索引关系相互链接
4. 文档命名格式YYYY-MM-DD-00X-功能名.md
5. 遵循阶段化执行流程,每个阶段生成对应的文档
## 维护规则
- 创建新文档时,必须更新相关索引
- 删除文档时,必须清理索引链接
- 修改文档时,必须同步更新索引
- Authentication.canvas 在 index 更新时同步更新