# final_kob **Repository Path**: ppshux/final_kob ## Basic Information - **Project Name**: final_kob - **Description**: final_kob is the final project of the Final_Game Series, focusing on implementing a robust backend using Spring Boot. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-20 - **Last Updated**: 2026-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Final_KOB 企业级对战后端平台 (Final_KOB) ## 项目简介 **Final_KOB(King of Backend)** 是 **Final 系列项目**的第四个作品,也是**最终章**。本项目基于 **Spring Boot + MyBatis + Redis + JWT** 构建,旨在实现一个可扩展、高并发、可部署的实时对战后端平台。 它复刻并升级自 **Final_AcApp(Django 版)**,采用企业级后端架构实践,涵盖用户系统、匹配系统、Bot 执行系统、排行榜、AcApp 登录等模块。 本项目是 **Final 系列项目**的终极实现,也是**后端架构能力的集大成之作**,展示了从 Django 到 Spring Boot 的技术栈迁移和企业级架构设计能力。 ## 项目特性 - 🧩 **分层架构**:Controller / Service / Mapper 解耦设计 - 🔐 **JWT 认证系统**:无状态 Token 认证机制 - 🎮 **匹配系统**:多线程匹配服务,自动分配玩家对战 - 🤖 **Bot 系统**:支持自动执行对战逻辑与策略 - 📊 **排行榜系统**:记录玩家战绩与积分排名 - 🚀 **高性能**:基于 Redis 缓存与异步线程池优化 - 🔄 **微服务友好**:RESTful API 设计,易于扩展 ## 技术栈 ### 后端技术 - **框架**:Spring Boot 3.x - **ORM**:MyBatis + MyBatis-Plus - **数据库**:MySQL 8.0+ - **缓存**:Redis 6+ - **认证**:JWT (JSON Web Token) - **多线程**:ExecutorService / BlockingQueue - **构建工具**:Maven - **Java 版本**:Java 17+ ### 前端 / 客户端 - **Web**:HTML + Bootstrap 5 + JavaScript - **AcApp**:支持 AcWing OAuth2.0 一键登录 - **接口通信**:RESTful API + Axios ## 核心功能模块 ### 1. 用户系统 📋 - [√] 用户注册 / 登录 - [√] JWT Token 认证 - [√] 用户信息查询与更新 - [√] AcWing 第三方授权登录(Web 端) - [√] AcWing 第三方授权登录(AcApp 端) - [√] 个人中心页面 - [√] 头像上传 ### 2. 匹配系统 🎯 - [√] WebSocket 实时通信 - [√] 地图同步机制 - [√] 匹配系统基础架构 - [√] 玩家移动同步 - [√] 游戏状态同步 - [√] 对战记录存储(MySQL) - [√] 游戏结果展示(ResultBoard) - [√] 多线程匹配逻辑 - [√] 匹配队列管理 - [√] 匹配超时与取消机制 - [√] 对战房间创建 - [√] 天梯积分系统 - [√] 独立匹配微服务模块 ### 3. Bot 执行系统 🤖 - [√] Bot 后端 CRUD API 实现 - [√] Bot 实体类与数据库映射 - [√] Bot 控制器 API 接口 - [√] Bot 服务层实现 - [√] Bot 数据访问层 - [√] Bot 前端 CRUD 实现 - [√] Bot 管理界面 - [√] Bot 代码安全沙箱执行 - [√] 策略脚本运行与回传 - [√] 自动战斗逻辑 - [√] 独立 Bot 执行微服务模块 ### 4. 战绩与排行榜 🏆 - [√] 对战记录保存(Record 实体类) - [√] 数据库存储(MySQL) - [√] 积分与胜率统计 - [√] 排行榜展示 - [√] 历史对局回放 - [√] 录像回放页面(RecordContentView) - [√] 排行榜页面(RanklistIndexView) - [√] MyBatis-Plus 分页查询 ### 5. 项目部署 🚀 - [√] 后端打包上线 - [√] 前端打包与部署 - [√] 服务器环境配置 - [√] Nginx 反向代理配置 - [√] 项目成功上线运行 - [√] AcApp 端实现与部署 - [√] AcWing 第三方授权登录(Web + AcApp 双端) - [√] 项目完整上线运行 - [ ] 性能调优与安全配置(可选) - [ ] Docker 容器化部署(可选) ## 开发进度 | 项目 | 状态 | |------|------| | **版本** | v1.2.0 | | **完成度** | 100% | | **开发周期** | 2025/10/20 – 2025/11/3 | | **开发状态** | 已完成(Web + AcApp 双端) | 详细的开发计划、里程碑、每日更新与项目日志已移至 **[docs/progress/](docs/progress/README.md)** 目录。 ## 快速开始 ### 环境要求 - Java 17+ - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ ### 安装步骤 1. **克隆项目** ```bash git clone https://gitee.com/ppshux/final_kob cd final_kob ``` 2. **配置数据库** ```sql CREATE DATABASE kob_db; ``` 3. **修改配置文件** 编辑 `application.yml` 配置数据库和 Redis 连接信息 4. **构建并运行** ```bash mvn clean install mvn spring-boot:run ``` 5. **访问项目** ``` http://localhost:8080 ``` ## 项目结构 ``` final_kob/ ├── backend/ # Spring Boot 后端服务 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/final_kob/backend/ │ │ │ │ │ ├── BackendApplication.java # Spring Boot 主启动类 │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── CorsConfig.java # 跨域配置 │ │ │ │ │ └── controller/pk/ │ │ │ │ │ ├── IndexController.java # PK 页面控制器 │ │ │ │ │ └── BotInfoController.java # Bot 信息控制器 │ │ │ │ ├── BasicController.java # 基础控制器 │ │ │ │ ├── PathVariableController.java # 路径变量控制器 │ │ │ │ └── User.java # 用户实体类 │ │ │ └── resources/ │ │ │ ├── application.properties # 应用配置文件 │ │ │ ├── static/ │ │ │ │ ├── index.html # 静态首页 │ │ │ │ └── images/img.png # 静态图片资源 │ │ │ └── templates/pk/ │ │ │ └── index.html # PK 页面模板 │ │ └── test/java/com/final_kob/backend/ │ │ └── BackendApplicationTests.java # 测试类 │ ├── pom.xml # Maven 项目配置 │ └── .gitignore # Git 忽略文件 ├── web/ # Vue3 Web 端 │ ├── src/ │ │ ├── components/ │ │ │ ├── ContentField.vue # 内容区域组件 │ │ │ ├── GameMap.vue # 游戏地图组件 │ │ │ ├── NavBar.vue # 导航栏组件 │ │ │ └── PlayGournd.vue # 游戏场地组件 │ │ ├── views/ │ │ │ ├── error/ │ │ │ │ └── NotFoundView.vue # 404错误页面 │ │ │ ├── pk/ │ │ │ │ └── PkIndexView.vue # PK对战页面 │ │ │ ├── ranklist/ │ │ │ │ └── RanklistIndexView.vue # 排行榜页面 │ │ │ ├── record/ │ │ │ │ └── RecordIndexView.vue # 对局记录页面 │ │ │ └── user/bot/ │ │ │ └── UserBotIndexView.vue # Bot管理页面 │ │ ├── assets/ │ │ │ ├── images/ │ │ │ │ ├── background.png # 背景图片 │ │ │ │ └── logo.png # Logo图片 │ │ │ └── scripts/ │ │ │ ├── AcGameObject.js # 游戏对象基类 │ │ │ ├── GameMap.js # 游戏地图类 │ │ │ ├── Wall.js # 墙体类 │ │ │ ├── Cell.js # 游戏单元类 │ │ │ └── Snake.js # 贪吃蛇类 │ │ ├── router/ │ │ │ └── index.js # Vue Router 配置 │ │ ├── store/ │ │ │ └── index.js # Vuex 状态管理 │ │ ├── App.vue # Vue 根组件 │ │ └── main.js # Vue 入口文件 │ ├── public/ │ │ ├── index.html # HTML 模板 │ │ └── favicon.ico # 网站图标 │ ├── package.json # npm 项目配置 │ ├── vue.config.js # Vue CLI 配置 │ ├── babel.config.js # Babel 配置 │ ├── jsconfig.json # JavaScript 配置 │ └── .gitignore # Git 忽略文件 ├── acapp/ # Vue3 AcApp 端 │ ├── src/ │ │ ├── components/ │ │ │ └── Helloworld.vue # Hello World 组件 │ │ ├── assets/ │ │ │ └── logo.png # Logo 图片 │ │ ├── store/ │ │ │ └── index.js # Vuex 状态管理 │ │ ├── App.vue # Vue 根组件 │ │ └── main.js # Vue 入口文件 │ ├── public/ │ │ ├── index.html # HTML 模板 │ │ └── favicon.ico # 网站图标 │ ├── package.json # npm 项目配置 │ ├── vue.config.js # Vue CLI 配置 │ ├── babel.config.js # Babel 配置 │ ├── jsconfig.json # JavaScript 配置 │ └── .gitignore # Git 忽略文件 ├── docs/ │ └── progress/ # 开发进度与日志(见 docs/progress/README.md) └── README.md # 项目说明 ``` ### 架构说明 #### 🏗️ **三端分离架构** - **Backend(后端)**:Spring Boot 3.x + Maven - **Web(Web端)**:Vue3 + Vue Router + Vuex - **AcApp(移动端)**:Vue3 + Vuex(适配移动端) #### 📁 **模块职责** - **Backend**:提供 RESTful API 服务,处理业务逻辑 - **Web**:Web 端用户界面,通过 API 与后端通信 - **AcApp**:移动端应用,支持 AcWing OAuth2.0 登录 #### 🔧 **技术栈配置** - **后端**:Spring Boot + MyBatis + Redis + MySQL + JWT - **前端**:Vue3 + Vue Router + Vuex + Bootstrap + Axios - **构建**:Maven(后端)+ npm(前端) - **版本控制**:Git + Gitee ## 技术亮点 - ✅ **Spring Boot 分层架构**:Controller / Service / Mapper 清晰解耦 - ✅ **MyBatis-Plus**:简化 CRUD 操作,提升开发效率 - ✅ **JWT 认证体系**:无状态 Token 认证,支持分布式部署 - ✅ **Redis 缓存**:提升系统性能,减少数据库压力 - ✅ **多线程匹配**:高并发匹配系统,支持实时对战 - ✅ **RESTful API**:标准化接口设计,易于对接和扩展 - ✅ **安全沙箱**:Bot 代码隔离执行,保证系统安全 - ✅ **AcWing OAuth2.0**:第三方登录集成 ## 与 Final_AcApp 的对比 | 维度 | Final_AcApp (Django) | Final_KOB (Spring Boot) | |------|---------------------|------------------------| | **语言** | Python | Java | | **框架** | Django + Channels | Spring Boot | | **ORM** | Django ORM | MyBatis-Plus | | **认证** | JWT + DRF | JWT + Spring Security | | **实时通信** | WebSocket | WebSocket 已实现 | | **匹配系统** | Thrift RPC | 多线程队列 | | **缓存** | Redis | Redis | | **部署难度** | 中等 | 简单(打包为 JAR) | | **企业应用** | 中小型 | 大型企业级 | ## 许可证 本项目采用 MIT 许可证。 ## 致谢 - [Spring Boot](https://spring.io/projects/spring-boot) - 强大的 Java 框架 - [MyBatis](https://mybatis.org/mybatis-3/) - 优秀的持久层框架 - [Redis](https://redis.io/) - 高性能缓存 - [MySQL](https://www.mysql.com/) - 关系型数据库 - [JWT](https://jwt.io/) - JSON Web Token ## 联系方式 - **项目仓库**:[https://gitee.com/ppshux/final_kob](https://gitee.com/ppshux/final_kob) - **Final 系列项目**:Final_KOF ✅ | Final_MySpace ✅ | Final_AcApp ✅ | Final_KOB 🚀 --- > "From real-time games to enterprise architecture — Final_KOB marks the final evolution of the Show Way Plan." --- ## 🔗 相关项目 - **Final_KOF** - 拳皇格斗游戏(前端 Canvas 游戏开发)✅ - **Final_MySpace** - 社交空间平台(Vue3 全栈应用)✅ - **Final_AcApp** - 实时对战平台(Django 后端深度实践)✅ - **Final_KOB** - 企业级对战后端平台(Spring Boot 企业级架构)🚀 --- ⭐ 如果这个项目对你有帮助,请给它一个 Star! 🎮 **Final Series - The Ultimate Journey of Full Stack Development!** --- 📂 **进度与日志**:[docs/progress/](docs/progress/README.md) · [项目日志表](docs/progress/project-log.md) · [Final 系列总览](docs/progress/final-series.md) > "Keep building, keep recording, keep believing."