开发指南概览
本文档面向项目开发者,提供开发环境配置、技术栈说明与协作规范。
技术栈
后端
- 框架: Spring Boot 3.4.x
- 数据库框架: Spring Data JPA
- 数据库迁移: Liquibase
- 认证授权: Sa-Token
- API文档: SpringDoc OpenAPI
前端
- 框架: Vue 3
- 构建工具: Vite
- UI库: Vuetify
- 路由: Vue Router
- HTTP客户端: Axios
数据库
- 开发环境: H2(嵌入式,开箱即用)
- 生产环境: PostgreSQL
其他工具
- 媒体分析: FFprobe(容器镜像已集成)
- 包管理: Maven 3.8+(后端)、pnpm(前端)
项目目录结构
.
├── api/ # 后端服务(Spring Boot)
│ ├── pom.xml
│ ├── src/main/java/xyz/ezsky/anilink/
│ ├── src/main/resources/
│ └── src/test/
├── ui/ # 前端应用(Vue 3 + Vite)
│ ├── package.json
│ ├── src/
│ └── dist/ # 构建产物
├── docs/ # 项目文档(本目录)
└── README.md前置条件
开始开发前,请确保已安装:
- JDK 17+ - Java开发环境
- Maven 3.8+ - Java包管理
- Node.js 18+ - JavaScript运行时
- pnpm - 包管理工具("快速、节省硬盘的包管理器")
- FFprobe - 媒体元数据提取(可选,推荐安装以支持媒体文件分析)
- Docker - 容器化(可选,用于本地PostgreSQL或一体化验证)
快速验证环境
bash
# 检查各工具版本
java -version # 应为 17+
mvn -version # 应为 3.8.1+
node -version # 应为 18+
pnpm -version # 应为已安装
ffprobe -version # 可选
docker --version # 可选开发流程
1. 本地启动
按以下顺序启动服务:
bash
# 终端1:启动后端(8081端口)
cd api
mvn spring-boot:run
# 终端2:启动前端开发服务器(默认5173端口)
cd ui
pnpm install
pnpm dev然后在浏览器访问 http://localhost:5173。第一次访问会进入安装向导。
2. 联调重点
关键的联调接口与功能:
- 登录与权限 -
POST /api/v1/login与GET /api/v1/user/info - 媒体库管理 - 媒体库CRUD与手动扫描触发
- 文件元数据 - 异步队列进度查询与提取结果验证
- 番剧匹配 - 调用弹弹play接口与数据库缓存验证
- 播放与弹幕 - 视频流Range请求与弹幕接口调用
3. 开发规范
后端代码组织
Java类应遵循分层架构:
xyz.ezsky.anilink/
├── config/ # 应用配置
├── controller/ # API接口层(仅负责请求/响应)
├── service/ # 业务逻辑层(核心实现)
├── repository/ # 数据访问层
├── listener/ # 事件监听
├── model/ # 数据模型
│ ├── entity/ # 数据库实体(仅在Repository/Service中使用)
│ ├── dto/ # 数据传输对象(写入/更新入参)
│ └── vo/ # 视图对象(Controller返回给前端)
└── util/ # 通用工具类关键原则:
Controller与Repository层不承载复杂业务逻辑- 推荐数据流:查询
Controller -> Service -> Repository(Entity) -> Service(转VO) -> Controller - 推荐数据流:写入
Controller(接DTO) -> Service(转Entity) -> Repository
前端代码组织
src/
├── views/ # 页面组件
├── components/ # 通用与业务组件
├── router/ # 路由配置
├── styles/ # 样式文件
├── utils/ # 工具函数与API客户端
└── App.vue # 根组件