datai/docs/requirements/template.md
Kris b7163d555b 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

123 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求文档模板
## 元数据
- 需求编号:
- 创建时间YYYY-MM-DD
- 创建人:
- 状态:进行中/已完成
- 优先级:高/中/低
## 需求概述
[需求概述描述]
## 目标
[需求目标描述]
## 业务上下文
[业务背景和上下文描述]
## 涉众分析
| 角色 | 需求 | 影响 |
| ---- | ---- | ---- |
| 角色1 | 需求1 | 影响1 |
| 角色2 | 需求2 | 影响2 |
## 功能需求
### 核心功能
#### 功能 1[功能名称]
- **描述**
- **验收标准**
1. 标准1
2. 标准2
- **优先级**:高/中/低
- **依赖关系**
#### 功能 2[功能名称]
- **描述**
- **验收标准**
1. 标准1
2. 标准2
- **优先级**:高/中/低
- **依赖关系**
### 次要功能
#### 功能 3[功能名称]
- **描述**
- **验收标准**
1. 标准1
2. 标准2
- **优先级**:高/中/低
- **依赖关系**
## 非功能需求
### 性能需求
- 响应时间:
- 吞吐量:
- 并发用户数:
### 安全需求
- 认证方式:
- 授权机制:
- 数据加密:
- 审计日志:
### 可用性需求
- 系统可用性:
- 容错机制:
- 灾备方案:
### 兼容性需求
- 浏览器兼容性:
- 操作系统兼容性:
- 接口兼容性:
### 可扩展性需求
- 扩展方式:
- 负载均衡:
### 可维护性需求
- 代码可读性:
- 文档完整性:
- 测试覆盖率:
## 数据需求
### 数据模型
```
[数据模型的可视化表示]
```
### 数据存储需求
- 数据库类型:
- 存储容量:
- 数据备份策略:
### 数据流转需求
```
[数据流转的可视化表示]
```
## 业务规则
[系统必须遵循的业务规则]
## 技术约束
[技术约束条件]
## 成功标准
[项目成功的衡量标准]
## 风险评估
| 风险 | 影响程度 | 发生概率 | 缓解措施 |
| ---- | ------ | ------ | ------ |
| 风险1 | 高/中/低 | 高/中/低 | 措施1 |
| 风险2 | 高/中/低 | 高/中/低 | 措施2 |
## 依赖关系
[需求之间的依赖关系]
## 相关文档
- [设计文档](../design/YYYY-MM-DD-00X-设计名.md)