
Demo: https://shop4d.ellisyuan.com
SpringMall 是一个前后端分离的单体全栈电商应用,完整实现电商业务所需所有链路:分类检索、多渠道支付支持(Alipay/ Stripe)、订单管理、调单漏单检测等。技术层面,Redis 承担认证缓存、接口限流、商品缓存和分布式锁; RabbitMQ 实现订单超时关单与支付掉单补偿;JWT 无状态认证 + Token 黑名单 + AOP 切面日志审计。



# 1. 克隆仓库
git clone https://github.com/geekie-yuan/springMall.git
cd springMall
# 2. 配置环境变量
cp .env.example .env
# 3. 填入数据库密码、JWT Secret、支付密钥(支付密钥非必需,但是会存在无法支付等情况)
nano .env
# 4. docker启动
docker compose --env-file .env up -d --build --wait
# 1. 克隆仓库
git clone https://github.com/geekie-yuan/springMall.git
cd springMall
# 2. 配置环境变量
Copy-Item .env.example .env
# 3.填入数据库密码、JWT Secret、支付密钥(支付密钥非必需,但是会存在无法支付等情况)
# 4. docker启动
docker compose --env-file .env up -d --build --wait
启动完成后(所有健康检查通过),可访问:
本地开发请参考 环境准备与本地开发
| 角色 |
用户名 |
密码 |
| 管理员 |
admin |
admin123 |
| 普通用户 |
user |
123456 |
springMall/
├── mall-backend/ # Spring Boot 后端
│ ├── src/main/java/.../
│ │ ├── controller/ # HTTP 接口层(含 admin/ 子目录)
│ │ ├── service/ # 业务逻辑(接口 + impl/)
│ │ ├── mapper/ # MyBatis Mapper 接口
│ │ ├── entity/ # 数据库实体类 (DO)
│ │ ├── dto/ # 请求入参 (DTO)
│ │ ├── vo/ # 响应视图对象 (VO)
│ │ ├── converter/ # MapStruct 转换器
│ │ ├── config/ # 配置类(Security、Swagger、Redis 等)
│ │ ├── security/ # JWT 认证、Token 黑名单、用户缓存
│ │ ├── mq/ # RabbitMQ 生产者 + 消费者
│ │ ├── aspect/ # AOP 切面(日志、限流、脱敏)
│ │ ├── annotation/ # 自定义注解
│ │ ├── enums/ # 枚举(订单状态、支付状态)
│ │ ├── exception/ # 全局异常处理
│ │ └── util/ # 工具类(分布式锁等)
│ ├── src/main/resources/
│ │ ├── db/schema.sql # 数据库建表脚本
│ │ ├── mapper/*.xml # MyBatis XML 映射
│ │ └── application*.yml # 多环境配置
│ ├── docs/ # 后端技术文档
│ └── Dockerfile # 多阶段构建
├── mall-frontend/ # Vue 3 前端
│ ├── src/
│ │ ├── api/ # Axios 接口模块(按业务领域拆分)
│ │ ├── views/ # 页面组件(user/、admin/、auth/)
│ │ ├── components/ # 可复用组件
│ │ ├── layouts/ # 布局组件(UserLayout、AdminLayout)
│ │ ├── store/ # Pinia 状态管理
│ │ ├── router/ # Vue Router + 导航守卫
│ │ ├── utils/ # 工具函数
│ │ └── assets/ # SCSS 样式
│ ├── docs/ # 前端技术文档
│ ├── nginx.conf # Nginx 反向代理配置
│ └── Dockerfile # 多阶段构建
├── docker-compose.yml # 基础编排(5 个服务)
├── docker-compose.test.yml # 测试环境 override
├── docker-compose.prod.yml # 生产环境 override
├── deploy.sh # 部署脚本(Linux/macOS)
├── deploy.ps1 # 部署脚本(Windows PowerShell)
├── .env.example # 环境变量模板
└── docs/ # 全局文档
| 层次 |
技术 |
| 后端框架 |
Spring Boot 3.3.6、Spring Security、Spring AOP |
| 数据层 |
MyBatis 3.5、PageHelper、MapStruct 1.5 |
| 数据库 |
MySQL 8.0、Redis |
| 消息队列 |
RabbitMQ(DLQ ) |
| 认证 |
JWT、无状态会话 |
| 支付 |
支付宝 SDK 4.40、Stripe SDK 31.3 |
| 前端框架 |
Vue 3.5、Vue Router 4、Pinia 3 |
| UI 组件 |
Element Plus 2.13 |
| 构建工具 |
Maven、Vite 7 + pnpm |
| 部署 |
Docker Compose、Nginx |
| 接口文档 |
Swagger |
| 文档 |
说明 |
| 前端架构 |
目录结构、技术选型、Axios 封装、Vite 优化 |
| 路由与导航守卫 |
路由表、导航守卫逻辑、懒加载策略 |
| 状态管理 |
4 个 Pinia Store 详解、持久化、交互关系 |