Files
martial-master/doc/前后端架构说明.md
n72595987@gmail.com 38472ee832 优化后端配置和数据库结构
1. 修复Swagger配置,添加武术模块API分组
   - 在SwaggerConfiguration中新增martialApi()方法
   - 使武术模块的66个接口能在Knife4j界面正常显示

2. 优化项目依赖配置
   - 添加spring-boot-starter-actuator用于健康检查
   - 暂时注释flowable工作流依赖以简化项目

3. 更新数据库结构
   - 优化martial_db.sql,精简表结构从123张减少到53张
   - 保留核心BladeX系统表和15张武术业务表
   - 更新测试数据:2场比赛、10名运动员、9个项目

4. 补充项目文档
   - 添加架构说明、开发指南等中文文档

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 16:30:20 +08:00

433 lines
12 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.
# BladeX 完整架构说明
## 一、BladeX 完整系统架构
BladeX 是一个**前后端分离**的企业级微服务架构,完整的系统包含多个项目:
```
BladeX 完整架构
├── 后端项目(当前)
│ ├── martial-master # Spring Boot 后端 API当前项目
│ └── martial-tool # BladeX 框架核心(依赖库)
├── 前端项目(独立仓库)
│ ├── Saber (推荐) # Vue 3 + Element Plus 管理后台 ⭐
│ └── Sword (旧版) # Vue 2 + Avue 管理后台(已不推荐)
└── 可选组件
├── BladeX-Auth # 独立认证中心(微服务版)
├── BladeX-Gateway # 网关服务(微服务版)
└── BladeX-Register # 注册中心Nacos
```
### 当前项目状态
根据 `CLAUDE.md` 的说明:
```
"The frontend is a separate Vue.js project (not in this repository)"
```
**当前您手上只有后端项目** `martial-master`,前端管理系统是独立的项目。
---
## 二、前端管理系统 - Saber
### 2.1 Saber 是什么?
**Saber** 是 BladeX 官方的 Vue 3 管理后台系统,提供可视化的管理界面。
**主要功能**
- 🏠 **仪表盘**:数据统计、图表展示
- 👥 **用户管理**:用户增删改查、角色分配
- 🔐 **权限管理**:角色管理、菜单管理、权限分配
- 🏢 **组织架构**:部门管理、岗位管理
- 📋 **系统管理**:字典管理、参数配置、日志查看
- 🗂️ **资源管理**文件上传、OSS 配置
- ⚙️ **开发工具**:代码生成器、数据源管理
- 🥋 **业务功能**:武术比赛管理(根据菜单配置)
### 2.2 Saber 技术栈
```
前端框架Vue 3
UI 组件Element Plus
状态管理Pinia
路由Vue Router 4
构建工具Vite
HTTP 库Axios
```
### 2.3 Saber 项目地址
**官方仓库**(需要授权访问):
```
Gitee: https://gitee.com/smallc/Saber
GitHub: https://github.com/chillzhuang/Saber
```
**注意**BladeX 是商业框架,完整源码需要购买授权。
### 2.4 Saber 运行端口
根据配置文件中的线索:
```yaml
# application-dev.yml
blade:
token:
domain: http://127.0.0.1:1888 # 前端地址
```
**默认端口**`1888`(开发环境)
---
## 三、前后端交互流程
```
┌─────────────────────────────────────────────────────────────┐
│ 用户浏览器 │
└──────────────┬──────────────────────────────────────────────┘
│ http://localhost:1888
┌──────────────────────────────────────────────────────────────┐
│ Saber 前端 (Vue 3) │
│ - 登录页面 │
│ - 仪表盘 │
│ - 用户管理 │
│ - 权限管理 │
│ - 武术比赛管理(调用后端 API
└──────────────┬───────────────────────────────────────────────┘
│ HTTP 请求JSON
│ POST /blade-auth/token
│ GET /blade-system/user/list
│ GET /api/martial/competition/list
┌──────────────────────────────────────────────────────────────┐
│ martial-master 后端 (Spring Boot) │
│ http://localhost:8123 │
│ │
│ ├── /blade-auth/** → 认证模块 │
│ ├── /blade-system/** → 系统管理 │
│ ├── /blade-desk/** → 仪表盘 │
│ ├── /blade-resource/** → 资源管理 │
│ ├── /blade-develop/** → 开发工具 │
│ └── /api/martial/** → 武术比赛(您的业务) │
└──────────────┬───────────────────────────────────────────────┘
┌──────────────┐
│ MySQL │
│ Redis │
└──────────────┘
```
---
## 四、当前项目的使用方式
### 方式一:仅使用 API当前可用
**适合场景**
- 前端单独开发
- 移动端开发
- API 集成测试
**访问方式**
```
Knife4j API 文档http://localhost:8123/doc.html
直接调用 API
POST http://localhost:8123/blade-auth/token
GET http://localhost:8123/api/martial/competition/list
```
**优点**
- ✅ 无需前端,可以直接测试 API
- ✅ 适合后端开发和调试
**缺点**
- ❌ 没有可视化界面
- ❌ 需要手动构造 HTTP 请求
---
### 方式二:搭配 Saber 前端(需要获取源码)
**步骤 1获取 Saber 源码**
如果您有 BladeX 授权,可以从官方获取 Saber 源码:
```bash
# Gitee
git clone https://gitee.com/smallc/Saber.git
# GitHub
git clone https://github.com/chillzhuang/Saber.git
```
**步骤 2配置后端地址**
```javascript
// Saber/src/config/website.js
export default {
// 后端 API 地址
apiUrl: 'http://localhost:8123',
// Token 存储键
tokenHeader: 'Blade-Auth',
// 其他配置...
}
```
**步骤 3安装依赖并启动**
```bash
cd Saber
# 安装依赖
npm install
# 或
yarn install
# 启动开发服务器
npm run dev
# 或
yarn dev
```
**步骤 4访问**
```
浏览器访问http://localhost:1888
默认账号:
用户名admin
密码admin
```
**步骤 5使用管理后台**
登录后,您可以在 Saber 管理后台中:
- 📊 查看仪表盘数据
- 👥 管理用户和角色
- 📋 配置菜单权限
- 🥋 使用武术比赛管理功能(需要先配置菜单)
---
### 方式三:使用第三方 API 工具(临时方案)
如果暂时没有 Saber 源码,可以使用:
**Postman / Apifox / Insomnia**
```
1. 先调用登录接口获取 Token
POST http://localhost:8123/blade-auth/token
Body: {
"tenantId": "000000",
"username": "admin",
"password": "admin",
"grant_type": "captcha",
"scope": "all"
}
2. 复制返回的 access_token
3. 在后续请求中添加 Header
Blade-Auth: bearer <access_token>
4. 调用业务接口:
GET http://localhost:8123/api/martial/competition/list
```
**VS Code REST Client 扩展**
```http
### 1. Token
POST http://localhost:8123/blade-auth/token
Content-Type: application/json
{
"tenantId": "000000",
"username": "admin",
"password": "admin",
"grant_type": "captcha",
"scope": "all"
}
### 2.
GET http://localhost:8123/api/martial/competition/list
Blade-Auth: bearer {{token}}
```
---
## 五、模块启动管理
### 5.1 单体架构(当前项目)
**当前项目是单体应用**,所有模块在一个进程中运行:
```
java -jar blade-api.jar
启动后,所有模块同时可用:
✅ auth 模块
✅ system 模块
✅ resource 模块
✅ desk 模块
✅ develop 模块
✅ martial 模块
✅ job 模块
```
**没有独立的模块启动管理**,因为不是微服务架构。
---
### 5.2 微服务架构(可选升级)
如果升级到微服务版本,架构会变成:
```
BladeX 微服务架构
├── BladeX-Register (Nacos) # 注册中心,管理所有服务
├── BladeX-Gateway # 网关服务
├── BladeX-Auth # 认证服务
├── BladeX-System # 系统服务
├── BladeX-Resource # 资源服务
├── BladeX-Desk # 工作台服务
└── Martial-Service # 武术比赛服务(您的业务)
```
**此时会有管理界面**
**Nacos 控制台**
```
地址http://localhost:8848/nacos
功能:
- 查看所有注册的服务
- 服务健康检查
- 配置管理
- 服务上下线
```
**Sentinel 控制台**(可选):
```
地址http://localhost:8858
功能:
- 流量控制
- 熔断降级
- 系统负载保护
```
**Spring Boot Admin**(可选):
```
地址http://localhost:7002
功能:
- 监控所有 Spring Boot 应用
- 查看日志
- 查看 JVM 信息
- 健康检查
```
---
## 六、常见疑问解答
### Q1: 为什么没有找到管理界面?
**A**: 当前项目是**纯后端 API 项目**前端管理系统Saber是独立的项目需要单独获取和部署。
### Q2: 如何获取 Saber 前端源码?
**A**:
- 如果您有 BladeX 授权,从官方仓库获取
- 如果是开源版本,部分功能可能不可用
- 可以联系 BladeX 官方获取试用版
### Q3: 没有 Saber 可以开发吗?
**A**: 可以!
- 使用 Knife4j API 文档测试http://localhost:8123/doc.html
- 使用 Postman/Apifox 调用 API
- 自己开发前端(任何技术栈都可以)
### Q4: 如何查看系统运行状态?
**A**:
- 查看日志:`tail -f application.log`
- 健康检查http://localhost:8123/actuator/health
- Druid 监控http://localhost:8123/druid
- Knife4j 文档http://localhost:8123/doc.html
### Q5: 这个项目是微服务吗?
**A**: 当前是**单体应用**Monolithic但使用了模块化设计。如果需要可以升级为微服务架构。
---
## 七、推荐的开发方式
### 当前阶段(无 Saber
```
1. 后端开发:
- 在 VS Code 中开发业务逻辑
- 使用 F5 调试运行
2. 接口测试:
- 使用 Knife4jhttp://localhost:8123/doc.html
- 使用 Postman/Apifox
3. 数据库操作:
- 使用 Navicat/DBeaver 连接 MySQL
- 执行 SQL 查看数据
```
### 有 Saber 前端时
```
1. 启动后端:
cd martial-master
mvn spring-boot:run
2. 启动前端:
cd Saber
npm run dev
3. 访问管理后台:
http://localhost:1888
4. 全栈开发:
- 后端改代码 → 前端调用 API
- 前端页面 → 调用后端接口
```
---
## 八、总结
| 组件 | 状态 | 地址 | 说明 |
|------|------|------|------|
| **后端 API** | ✅ 有 | http://localhost:8123 | 当前项目 |
| **API 文档** | ✅ 有 | http://localhost:8123/doc.html | Knife4j |
| **Druid 监控** | ✅ 有 | http://localhost:8123/druid | 数据库监控 |
| **前端管理系统** | ❌ 无 | http://localhost:1888 | Saber需单独获取 |
| **模块管理界面** | ❌ 无 | - | 单体应用,无需管理 |
**关键点**
- ✅ 后端可以独立运行和开发
- ✅ 使用 Knife4j 可以完成所有测试
- ❌ 如需可视化管理界面,需要部署 Saber 前端
- ❌ 单体架构下没有"模块启动管理"的概念
---
**建议**
1. 现阶段专注后端 API 开发
2. 使用 Knife4j 测试接口
3. 如需前端,可以自己用 Vue/React 开发,或等待获取 Saber 源码