Files
music-metadata-system/docs/P0-基础架构-开发落地说明.md

117 lines
4.4 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.
# P0 基础架构开发落地说明
## 1. 阶段定位
P0 阶段的目标是完成后端基础工程、数据库底座、统一异常与响应规范建设,形成一个可编译、可启动、可落盘、可继续承接后续 P1/P2 业务开发的项目骨架。
本阶段不追求业务闭环,而是为后续目录扫描、元数据解析、失败文件管理、归档等能力提供稳定的运行基础。
## 2. 阶段目标
- 搭建基于 Spring Boot 3.2.6 + Java 21 的后端工程
- 集成 MyBatis-Plus 与 H2完成单机可运行的数据存储底座
- 完成核心基础表 DDL、Entity、Mapper、Service、ServiceImpl
- 建立统一响应结构与全局异常处理机制
- 预留 GraalVM Native Image 编译能力
## 3. 已完成内容
### 3.1 工程骨架
- 已创建 Maven 项目 `music-metadata-system`
- 已接入 `spring-boot-starter-web`
- 已配置 `@SpringBootApplication``@MapperScan`
- 项目启动入口:`music-metadata-system/src/main/java/com/music/metadata/MusicMetadataSystemApplication.java`
### 3.2 数据库与配置基线
- 已集成 H2 `2.2.224`
- 已采用文件模式数据库:`jdbc:h2:file:./data/music_metadata_db`
- 启动后可在本地生成数据库文件,满足单机部署要求
- 已配置 H2 Console、SQL 初始化、MyBatis-Plus 驼峰映射与主键策略
关键配置文件:
- `music-metadata-system/src/main/resources/application.yml`
- `music-metadata-system/src/main/resources/schema.sql`
### 3.3 基础表落地
P0 阶段已完成 4 张基础核心表:
- `t_process_task`:处理任务主表
- `t_file_process`:文件处理记录表
- `t_fail_file`:失败文件记录表
- `t_system_config`:系统配置表
这些表已经在 `music-metadata-system/src/main/resources/schema.sql` 中以初始化 DDL 形式落地。
### 3.4 持久化层建设
已为 P0 阶段 4 张基础表建立完整的持久化访问层,包括:
- Entity
- Mapper
- Service 接口
- ServiceImpl 实现
对应代码位于:
- `music-metadata-system/src/main/java/com/music/metadata/infrastructure/entity/`
- `music-metadata-system/src/main/java/com/music/metadata/infrastructure/mapper/`
- `music-metadata-system/src/main/java/com/music/metadata/service/`
- `music-metadata-system/src/main/java/com/music/metadata/service/impl/`
### 3.5 统一响应与异常处理
已完成接口层基础治理能力,为后续 Controller 与前后端联调做准备:
- 统一返回结构:`ApiResponse<T>`
- 业务异常类型:`BusinessException`
- 全局异常处理:`GlobalExceptionHandler`
关键文件:
- `music-metadata-system/src/main/java/com/music/metadata/common/api/ApiResponse.java`
- `music-metadata-system/src/main/java/com/music/metadata/common/exception/BusinessException.java`
- `music-metadata-system/src/main/java/com/music/metadata/common/handler/GlobalExceptionHandler.java`
### 3.6 原生编译基础能力
- 已引入 `org.graalvm.buildtools:native-maven-plugin`
- 当前已具备后续 GraalVM Native Image 适配与扩展基础
- P0 阶段只完成插件接入,不包含完整 native 兼容性治理
## 4. 关键交付物
- 后端项目目录:`music-metadata-system/`
- 核心构建文件:`music-metadata-system/pom.xml`
- 配置文件:`music-metadata-system/src/main/resources/application.yml`
- 初始化脚本:`music-metadata-system/src/main/resources/schema.sql`
- 启动入口:`music-metadata-system/src/main/java/com/music/metadata/MusicMetadataSystemApplication.java`
- 通用 API 与异常处理:`music-metadata-system/src/main/java/com/music/metadata/common/`
## 5. 验收结果
P0 阶段已完成并通过验收,结果如下:
| 验收项 | 结果 | 说明 |
|--------|------|------|
| `mvn clean compile` 编译通过 | 通过 | 项目具备可编译性 |
| `mvn spring-boot:run` 能正常启动 | 通过 | Spring Boot 服务可启动 |
| H2 数据库文件能在本地生成 | 通过 | 可生成 `data/music_metadata_db.mv.db` |
| 不引入业务流程代码 | 通过 | P0 保持基础设施就绪定位 |
## 6. 阶段边界
为保持 P0 聚焦,本阶段未包含以下内容:
- 未生成业务 Controller
- 未实现目录扫描、元数据解析、校验、归档等业务流程
- 未实现前端页面与接口联调
- 未实现音频元数据读写与测试资源建设
## 7. 阶段结论
P0 阶段已经完成“基础设施就绪”的目标项目具备继续承接业务开发的能力。P1 可以在此基础上直接进入元数据解析、校验、快照存储与扫描去重能力建设。