Files
martial-master/docs/前后端架构说明.md
n72595987@gmail.com 1c96ef4f6f
All checks were successful
continuous-integration/drone/push Build is passing
refactor: 重组项目目录结构
将 doc/ 目录重组为更标准的结构:

目录变更:
- doc/ → docs/ (文档目录,只包含 .md 文件)
- doc/sql/ → database/ (数据库脚本目录)
  - database/bladex/ (BladeX 框架数据库)
  - database/flowable/ (Flowable 工作流数据库)
  - database/martial-db/ (武术系统业务数据库)
  - database/upgrade/ (数据库升级脚本)
- doc/script/ → scripts/ (部署和运维脚本)
  - scripts/docker/ (Docker 部署脚本)
  - scripts/fatjar/ (Fat JAR 启动脚本)

优势:
- 符合标准项目结构规范
- 文档、数据库、脚本分离更清晰
- 便于维护和查找

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 10:53:50 +08:00

12 KiB
Raw Blame History

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 运行端口

根据配置文件中的线索:

# 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 源码:

# Gitee
git clone https://gitee.com/smallc/Saber.git

# GitHub
git clone https://github.com/chillzhuang/Saber.git

步骤 2配置后端地址

// Saber/src/config/website.js
export default {
  // 后端 API 地址
  apiUrl: 'http://localhost:8123',

  // Token 存储键
  tokenHeader: 'Blade-Auth',

  // 其他配置...
}

步骤 3安装依赖并启动

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 扩展

### 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: 可以!

Q4: 如何查看系统运行状态?

A:

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 源码