datai/docs/index.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

5.7 KiB
Raw Blame History

项目单一真源

元数据

  • 项目名称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等

目录索引

核心文档

文档目录

Prompt 目录

模块索引

  • datai-admin - 管理后台模块
  • datai-common - 通用工具模块
  • datai-framework - 核心框架模块
  • datai-models - 模型模块集合
    • datai-flowable - 工作流模块
    • datai-form - 表单模块
    • datai-generator - 代码生成器模块
    • datai-message - 消息模块
    • datai-online - 在线开发模块
    • datai-quartz - 定时任务模块
  • 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-scene-auth - 认证场景模块
    • datai-scene-file - 文件场景模块
    • datai-scene-pay - 支付场景模块
  • datai-system - 系统核心模块

需求追踪

更新日志

  • 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 更新时同步更新