7.4 KiB
7.4 KiB
apes-Authon-history — 剥离历史与源码分析归档
本仓库归档了 apes-Authon 账权独立服务平台从单体应用中剥离的完整过程、分析报告和方案文档。
供源码更新时参考,持续优化前后端代码和文档。
仓库定位
| 仓库 | 说明 | 地址 |
|---|---|---|
| apes-Authon-Server | 后端账权服务 | https://gitea.apescale.com/APES/apes-Authon-Server |
| apes-Authon-Web | 前端账权管理 | https://gitea.apescale.com/APES/apes-Authon-Web |
| apes-Authon-history | 本仓库 — 剥离历史与分析归档 | https://gitea.apescale.com/APES/apes-Authon-history |
| apes-Authdata | 源码归档(完整单体应用,供抽取参考) | https://gitea.apescale.com/APES/apes-Authdata |
目录结构
apes-Authon-history/
├── README.md # 本文件
├── docs/ # 源码分析与方案文档
│ ├── saas-service深度分析报告.md # 后端单体应用深度分析(33000 字)
│ ├── 代码深度解析与分析过程.md # 代码解析过程记录(27000 字)
│ ├── 账权平台-项目说明书.html # 原项目完整说明书(HTML)
│ └── 账权模块独立服务化方案.html # 独立服务化可行性分析与方案(HTML)
├── backend/ # 后端剥离文档
│ └── 账权模块提取说明.md # 提取原则、文件清单、耦合度验证、路线图
└── frontend/ # 前端剥离文档
├── apes-Authon-Web-剥离方案.md # 剥离方案(计划文档)
├── apes-Authon-Web-剥离方案.html # 剥离方案(HTML 版)
└── 剥离历史与说明.md # 剥离执行记录、变更明细、框架修改说明
文档索引
源码分析
| 文档 | 内容概述 |
|---|---|
| saas-service深度分析报告 | 后端单体应用的完整深度分析:项目结构、技术栈、核心模块(认证/授权/多租户/SSO/数据同步/LLM)、数据库设计、API 清单、配置体系 |
| 代码深度解析与分析过程 | 代码解析过程记录:AuthContext 工作机制、@Login AOP 切面、多租户数据源切换、伙伴云 SSO 集成、LLM Agent 架构 |
| 账权平台-项目说明书 | 原项目说明书(HTML 格式):功能模块、技术架构、部署方式、数据库 ER 图 |
| 账权模块独立服务化方案 | 独立服务化可行性分析:耦合度评估、剥离策略、技术路线、风险评估 |
后端剥离
| 文档 | 内容概述 |
|---|---|
| 账权模块提取说明 | 提取原则(纯账权/零业务/保留包名/保留依赖)、124 个文件清单(11 Controller + 23 Entity + 7 Service + 23 Mapper)、外部依赖分析、耦合度验证结论、后续路线图 |
前端剥离
| 文档 | 内容概述 |
|---|---|
| apes-Authon-Web-剥离方案 | 剥离前的计划文档:保留/删除/修改清单、页面耦合度分析、框架文件修改方案 |
| apes-Authon-Web-剥离方案 | 同上(HTML 格式) |
| 剥离历史与说明 | 剥离执行记录:176 文件变更(+222/-60093)、11 个框架文件修改详情、业务引用清理表、构建验证结果 |
剥离概述
后端 (apes-Authon-Server)
从 saas-service 单体应用中提取纯净账权模块,经过 4 个阶段完成:
| 阶段 | 目标 | 关键工作 |
|---|---|---|
| Phase 1 | apes-commons 内联 | 反推 8 个核心类(AuthContext / @Login / LoginAspect / Res / DbEntity 等),移除外部 JAR 依赖 |
| Phase 2 | 包名重构 | cn.apes.cloud → cn.apes.authon 全局包名重构,零残留 |
| Phase 3 | 编译验证 | 124 个源文件编译通过,Lombok 1.18.40 + compiler-plugin 3.13.0 兼容 Java 24 |
| Phase 4 | 提交推送 | 最终版本推送到 Gitea |
提取结果:11 Controller + 23 Entity + 12 DTO + 3 VO + 7 Service + 18 ServiceImpl + 23 Mapper + 5 Config + 1 Filter + 2 Util + 8 commons 内联 = 124 个 Java 文件
耦合度验证:
- 业务 Service → 账权 Service 直接调用:0 个
- 业务 Controller → 账权 Controller 直接调用:0 个
- 账权 Service → 业务 Mapper 直接调用:0 个
- 唯一交叉引用:
CustomerInfoServiceImpl→ huoban DTO 包(11 个纯 DTO,无业务逻辑)
前端 (apes-Authon-Web)
从 saas-web 单体前端中剥离纯净账权页面:
| 指标 | 数值 |
|---|---|
| 保留页面 | 40 个(24 账权 + 9 系统配置 + 7 AI 工具) |
| 删除页面 | ~82 个业务页面 |
| 代码变更 | +222 / -60093(净减约 6 万行) |
| 修改框架文件 | 11 个 |
| 构建状态 | 通过(npm run build:prod) |
如何使用本仓库
场景 1:源码更新后同步优化
当源码(单体应用)有更新时,按以下流程操作:
- 分析变更:对比源码最新版本与本仓库归档的分析文档,识别新增/修改的账权相关代码
- 评估影响:参照 账权模块提取说明 中的提取原则和文件清单,判断变更是否属于账权范畴
- 同步代码:将确认的变更同步到 apes-Authon-Server 或 apes-Authon-Web
- 更新文档:如有结构性变更,更新本仓库的分析文档
场景 2:理解架构设计
新开发者可通过以下顺序阅读文档快速理解系统:
- 账权平台-项目说明书 — 了解原项目全貌
- saas-service深度分析报告 — 理解后端架构
- 账权模块独立服务化方案 — 理解为什么要剥离
- 账权模块提取说明 — 理解后端怎么剥离的
- 前端剥离方案 — 理解前端怎么剥离的
- 剥离历史与说明 — 理解前端具体改了什么
场景 3:扩展新模块
参照 代码深度解析与分析过程 中的架构说明,理解以下核心机制后再进行扩展:
- AuthContext + @Login AOP:认证上下文的传递机制
- @TenantSource 动态数据源:多租户数据源切换
- SSO 集成:伙伴云单点登录的 Token 交换流程
- 动态路由:前端菜单 → 路由 → 组件的映射机制
后续路线图
| 阶段 | 目标 | 状态 |
|---|---|---|
| Phase 5A | AI 助手/LLM 模块后端提取(~54 Java 文件) | 待办 |
| Phase 5B | 系统配置页面补充 | 基本完成 |
| Phase 5C | 伙伴云表单配置模块提取 | 待办 |
| Phase 6 | SDK 化 — AuthContext 转为远程可调用 SDK | 待设计 |
| Phase 7 | 网关集成 — API 网关注入请求头替代 ThreadLocal | 待设计 |
License
MIT