发现一个宝藏开源商城项目,Spring Boot 4 + Vue 3 全链路,忍不住分享给你们
最近逛 GitHub 的时候挖到一个项目,看完代码质量和功能覆盖度之后真的有点惊到——这玩意儿居然是个人开源的?
项目叫CorSiteHive,开源标识「林木」,一套完整的单平台多店铺商城微服务工程。
GitHub 地址先放这:https://github.com/mlin80110-hue/cor-site-hive
先说为什么觉得它值得推
市面上开源商城项目不少,但大多数停留在两种状态:要么是老项目缝缝补补,Spring Boot 2.x + Vue 2 + jQuery 混搭,技术栈比功能还多;要么是 demo 级别,跑起来看看页面还行,真要拿来干活就发现到处都是坑。
CorSiteHive 不一样。它的技术栈是 2026 年最新的一批——Spring Boot 4.1、Spring Framework 7、Java 17+、Vue 3.5、TypeScript 6.0、Vite 8。不是那种“升级了版本号但代码还是老写法”的项目,是从架构到代码规范全部按新版本标准来的。
技术栈详细拆解
后端核心选型:
| 技术 | 版本 | 说明 |
|---|---|---|
| Java | 17+ | LTS 长期支持版 |
| Spring Boot | 4.1.0 | 目前最新主线版 |
| Spring Framework | 7.0.x | 由 Boot BOM 管理 |
| Spring Cloud | 2025.1.2 | 微服务治理全家桶 |
| Spring Cloud Alibaba | 2025.1.0.0 | Nacos 注册 + 配置中心 |
| Spring Cloud Gateway | 5.x | 统一网关,WebFlux 响应式 |
| MyBatis-Plus | 3.5.16 | ORM,用的 Boot 4 专用 starter |
| Nacos | 2.x | 服务注册与配置管理 |
| Redis | 6+ | 缓存、分布式锁、限流、会话 |
| RocketMQ / RabbitMQ | — | 可靠消息队列,按部署环境选 |
| Elasticsearch | 8+ | 全文检索与日志分析 |
| MinIO | — | 对象存储 |
| MySQL | 8.0+ | 主数据库,统一 utf8mb4_general_ci |
前端管理端:
| 技术 | 版本 | 说明 |
|---|---|---|
| Vue | 3.5 | 组合式 API |
| TypeScript | 6.0 | erasableSyntaxOnly 模式 |
| Vite | 8 | 构建工具 |
| Arco Design Vue | 2.x | UI 组件库 |
| Pinia | 3 | 状态管理 |
| vue-i18n | 11 | 国际化 |
| ECharts | 6.1 | 数据可视化图表 |
看到 TypeScript 6.0 的 erasableSyntaxOnly 模式了吗?这意味着项目里完全不用enum关键字,全部用as const+ 联合类型替代。这种规范程度在开源项目里真的少见。
模块架构一览
项目按微服务拆分,每个服务独立 Maven 模块,职责清晰:
上面的目录树展示了模块的物理组织方式。下面再用一张 Mermaid 流程图,从运行时视角来看各微服务之间的调用关系与数据流向:
flowchart TB Client[客户端/小程序/H5] --> Gateway[hive-gateway 统一网关 WebFlux] Gateway -->|JWT 鉴权| Auth[hive-auth 认证授权中心] Auth -->|签发 Token| Gateway Gateway -->|路由分发| Admin[hive-admin 管理端服务] Gateway -->|路由分发| ClientSvc[hive-client 用户端服务] Gateway -->|路由分发| Order[hive-order 订单域服务] Gateway -->|路由分发| IM[hive-im 客服 IM 服务] Gateway -->|路由分发| Platform[hive-platform 平台支撑服务] subgraph CommonLayer[hive-common 公共能力层] Cache[缓存/分布式锁] MQ[消息队列] Storage[对象存储] Security[安全鉴权] end CommonLayer --> Admin CommonLayer --> ClientSvc CommonLayer --> Order CommonLayer --> IM CommonLayer --> Platform Admin -->|读写| DB1[(hive_admin DB)] ClientSvc -->|读写| DB3[(hive_client DB)] Order -->|读写| DB2[(hive_order DB)] Auth -->|读写| DB4[(hive_auth DB)] Order -->|支付回调| Payment[支付渠道 SPI] IM -->|实时通信| WebSocket[WebSocket 会话] Order -->|异步解耦| MQ这张图体现了几个关键设计优势:
- 单一入口:hive-gateway 作为唯一网关,统一处理路由、鉴权、限流和请求 ID 链路追踪,外部请求不直接触及业务服务。
- 认证前置:JWT 解析和可信 Header 注入在网关层完成,hive-auth 只负责签发与验证,业务服务无需重复实现鉴权逻辑。
- 公共能力收敛:所有跨服务能力(缓存、分布式锁、消息队列、对象存储等)封装在 hive-common 中,业务模块之间没有直接 Maven 依赖,依赖关系单向清晰。
- 数据隔离:每个微服务对应独立数据库,服务间通过 API 而非共享数据库通信,避免了分布式事务的复杂性,也天然支持多店铺的行级数据隔离。
- 异步解耦:订单支付回调、消息通知等场景通过消息队列异步处理,削峰填谷的同时让各服务保持独立部署和演进节奏。
cor-site-hive/ ├── hive-common/ ← 公共 JAR,所有跨服务能力收敛在这里 │ 安全鉴权、缓存、分布式锁、幂等、审计日志 │ 数据库基础设施、消息队列、支付 SPI、国际化 │ 对象存储、限流熔断、可观测性 │ ├── hive-gateway/ ← 统一网关(WebFlux 响应式) │ 路由分发、JWT 解析、可信 Header 注入 │ 限流、语言识别、请求 ID 链路 │ ├── hive-business/ ← 业务微服务组 │ ├── hive-admin/ ← 管理端(商品、订单、营销、会员、财务、治理) │ ├── hive-client/ ← 用户端(H5、小程序、登录、个人中心) │ ├── hive-order/ ← 订单域(交易、支付、结算、分销、广告、物流) │ └── hive-im/ ← 客服 IM(WebSocket 会话、消息路由) │ ├── hive-infra/ ← 基础设施微服务组 │ ├── hive-auth/ ← 认证授权(JWT、登录配置、品牌资源) │ └── hive-platform/ ← 平台支撑(店铺入驻、保证金) │ ├── hive-ui-admin/ ← 管理端前端(Vue 3 + Arco Design) ├── hive-ui-client/ ← 用户端前端(H5 + 微信小程序 + 支付宝小程序 + 抖音小程序) ├── sql/ ← 一个微服务一个 SQL 文件 └── deploy/ ← 部署脚本与环境配置重点说一下hive-common这个模块。它不是一个“什么都往里塞”的垃圾堆,而是把全部跨服务能力做了严格封装:业务代码里看不到直接的 Redis 调用、MQ 发送、HTTP 客户端——全部通过 hive-common 的封装接口使用。这个设计在开源项目里属于相当高的工程标准。
业务功能覆盖到什么程度?
不是那种“有个商品列表和下单页面就敢叫商城”的项目。它的业务链路是完整的:
商品经营:SPU/SKU 多规格管理、类目树、品牌管理、库存扣减与预占、上下架控制。
交易闭环:购物车 → 订单结算 → 支付状态机 → 物流发货/自提 → 售后退款,整条链路全打通。支付回调有自动恢复机制,通过 SPI 接口接入不同支付渠道。
营销增长:优惠券(发放、核销、对账)、积分签到(积分账户 + 流水审计)、秒杀、拼团、砍价、限时折扣、分销推广、内容种草。
多店铺隔离:基于可信storeId做行级数据隔离。平台超管可以切换店铺维度查看全平台数据,普通管理员自动限定到自己店铺。关键是——前端不直接传租户标识,全部走服务端可信上下文传播,杜绝了前端篡改的可能。
客服 IM:WebSocket 实时会话,支持客服消息路由、会话分配、消息归档。SQLite 本地归档副本,不依赖外部存储也能保留历史记录。
运营治理:配置台账(谁改了什么配置一目了然)、审批流、流量规则管理、削峰队列、定时任务调度。
店铺装修:可视化页面装修工具,组件化首页配置。运营人员不用找开发就能改页面。
财务对账:支付流水对账、分账结算、提现管理、财务报表看板(带 ECharts 数据可视化)。
国际化:后端域级消息枚举 + 前端 vue-i18n,默认中文、支持英文切换。所有业务异常消息都来自 Java 枚举,不是硬编码的中文字符串。
工程质量方面,说几个让我印象深刻的点
1. 接口约束极严
所有 Controller 只暴露 GET 和 POST,没有 PUT、DELETE、PATCH。入参统一 DTO,出参统一 VO,PO 绝不外泄。路由版本号在前/v1/admin/...,路径段全小写单词,不允许驼峰、不允许连字符。
2. 枚举和常量治理彻底
后端所有状态码、类型码、权限码都是 Java enum,禁止裸 int/String 魔法值。前端对应字段全部用as const+ 联合类型,禁止 TypeScriptenum关键字。长度限制、分页上限、正则这些边界值全部提取为命名常量,@Size(max = 64)这种写法在代码审查里直接算违规。
3. 自动化测试覆盖
117 个前端合规测试 + 147 个后端单元测试,覆盖 SQL 结构、架构边界、路由规范、权限校验。每次 CI 自动跑全量测试,挂了直接阻断合并。
4. 全中文注释覆盖
每个类、方法、字段、关键分支都有中文注释。接手二次开发不会出现“这段代码在干嘛”的情况。
5. 代码整洁
没有 unused import、没有废弃 DTO、没有空目录。模块间依赖关系清晰,hive-common是唯一的共享库,业务服务之间没有直接 Maven 依赖。
数据库设计
七个微服务对应七个数据库,每个微服务一个 SQL 文件,文件开头自带CREATE DATABASE IF NOT EXISTS:
| SQL 文件 | 对应服务 | 数据域 |
|---|---|---|
| hive_admin.sql | hive-admin | 后台管理、商品、营销、会员、治理 |
| hive_auth.sql | hive-auth | 认证授权、登录配置、品牌资源 |
| hive_client.sql | hive-client | 用户账号、会员、积分、商品行为 |
| hive_order.sql | hive-order | 订单、支付、结算、分销、广告、物流 |
| hive_im.sql | hive-im | 客服会话、消息、通知 |
| hive_file.sql | — | 文件资源 |
| hive_log.sql | — | 审计日志 |
导入就能用,不用自己建库建表。
快速开始
# 克隆项目 git clone https://github.com/mlin80110-hue/cor-site-hive.git cd cor-site-hive 后端编译 mvn clean install 导入 SQL(7 个文件,每个自带建库语句) mysql < sql/hive_admin.sql mysql < sql/hive_auth.sql mysql < sql/hive_client.sql mysql < sql/hive_order.sql mysql < sql/hive_im.sql mysql < sql/hive_file.sql mysql < sql/hive_log.sql 前端启动 cd hive-ui-admin npm install npm run dev环境要求:Java 17+、Node.js 22、MySQL 8.0+、Redis 6+、Nacos 2.x。
适合什么人?
独立开发者想快速搭一套商城系统,不想花半年时间从零搭架构
小团队需要一个可靠的商城底座做二次开发,预算有限不想买商业授权
学微服务的人想找一个功能完整、架构规范的真实项目来参考,比看教程有收获
技术负责人在选型阶段需要一个参照物,评估“做到这个程度需要多少工作量”
最后
整体来看,这个项目的代码规范程度高、工程实践扎实,在开源商城项目中属于少见的高质量作品。Spring Boot 4 + TypeScript 6 的技术栈选择也反映出作者对技术趋势有清晰的判断,不是那种“能跑就行”的态度。
项目是 Apache 2.0 协议,商用友好。
GitHub 地址:https://github.com/mlin80110-hue/cor-site-hive
觉得有用的话 Star 一下,也是对开源作者的支持。
