## 项目概述

mall 是一套完整的电商系统，包含前台商城系统和后台管理系统，基于 Spring Boot + MyBatis 实现，采用 Docker 容器化部署。项目由 macrozheng 开发并维护，代码托管在 GitHub。前台商城系统提供首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块；后台管理系统提供商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。项目采用模块化设计，包含 mall-common、mall-mbg、mall-security、mall-admin、mall-search、mall-portal、mall-demo 等子模块。

## 核心功能

- **前台商城系统**：支持商品浏览、搜索、推荐、购物车、订单流程、会员中心、客户服务等功能。
- **后台管理系统**：提供商品、订单、会员、促销、运营、内容、统计报表、财务、权限等管理功能。
- **商品搜索**：基于 Elasticsearch 实现商品搜索功能。
- **用户认证与授权**：基于 Spring Security 和 JWT 实现。
- **消息队列**：使用 RabbitMQ 处理异步消息。
- **缓存**：使用 Redis 作为缓存存储。
- **日志收集**：集成 ELK（Elasticsearch、Logstash、Kibana）进行日志收集与可视化。
- **对象存储**：支持阿里云 OSS 和 MinIO。
- **容器化部署**：支持 Docker 和 Docker Compose 部署。

## 适用与不适用场景

**适用场景**：
- 中小型电商项目的快速搭建与二次开发。
- 学习 Spring Boot、MyBatis、Spring Security 等主流 Java 技术栈的实践项目。
- 需要前后端分离架构的电商系统。
- 需要容器化部署和微服务化改造的起点。

**不适用场景**：
- 大型高并发电商系统，可能需要更复杂的微服务架构和分布式解决方案。
- 需要高度定制化业务逻辑且与现有模块冲突的场景。
- 非 Java 技术栈团队，因为项目基于 Java 生态。

## 技术架构与依赖

**后端技术**：Spring Boot、Spring Security、MyBatis、MyBatis Generator、Elasticsearch、RabbitMQ、Redis、MongoDB、Logstash、Kibana、Nginx、Docker、Jenkins、Druid、OSS、MinIO、JWT、Lombok、Hutool、PageHelper、SpringDoc、Hibernator-Validator。

**前端技术**：Vue、Vue-router、Vuex、Element、Axios、v-charts、Js-cookie、nprogress。

**移动端技术**：Vue、Vuex、uni-app、mix-mall、luch-request。

**开发环境**：JDK 17、MySQL 5.7、Redis 7.0、MongoDB 5.0、RabbitMQ 3.10.5、Nginx 1.22、Elasticsearch 7.17.3、Logstash 7.17.3、Kibana 7.17.3。

**分支说明**：master 分支基于 Spring Boot 3.5 + JDK 17，dev-v2 分支基于 Spring Boot 2.7 + JDK 8。

## 安装与快速开始

**环境准备**：安装 JDK 17、MySQL 5.7、Redis 7.0、MongoDB 5.0、RabbitMQ 3.10.5、Nginx 1.22、Elasticsearch 7.17.3、Logstash 7.17.3、Kibana 7.17.3。

**克隆项目**：
```bash
git clone https://github.com/macrozheng/mall.git
```

**导入 IDE**：使用 IDEA 导入项目，等待 Maven 依赖下载完成。

**配置数据库**：创建 MySQL 数据库，导入项目中的 SQL 脚本（位于 document/sql 目录）。

**启动依赖服务**：启动 MySQL、Redis、MongoDB、RabbitMQ、Elasticsearch 等。

**启动后端模块**：运行 mall-admin 模块（后台管理接口）和 mall-portal 模块（前台商城接口）。

**启动前端项目**：克隆 mall-admin-web 和 mall-app-web 项目，分别安装依赖并启动。

**Docker 部署**：参考官方文档使用 Docker Compose 一键部署。

## 典型使用方法

**后台管理**：访问后台管理系统地址（如 https://www.macrozheng.com/admin/index.html），使用管理员账号登录，进行商品、订单、会员等管理操作。

**前台商城**：访问前台商城地址（如 https://www.macrozheng.com/app/），浏览商品、搜索、加入购物车、下单等。

**API 调用**：后端接口遵循 RESTful 风格，使用 Swagger UI 或 SpringDoc 查看接口文档。

**二次开发**：基于模块化结构，可扩展新功能模块，修改数据库表结构后使用 MyBatis Generator 重新生成代码。

## 配置与部署要点

- **配置文件**：各模块的 application.yml 中配置数据库、Redis、RabbitMQ、Elasticsearch 等连接信息。
- **Docker 部署**：使用 Dockerfile 构建镜像，使用 docker-compose.yml 编排服务。
- **日志收集**：配置 Logstash 收集日志并输出到 Elasticsearch，使用 Kibana 可视化。
- **对象存储**：配置 OSS 或 MinIO 的访问密钥和端点。
- **权限控制**：基于 Spring Security 和 JWT，配置角色和权限。
- **环境变量**：敏感信息建议使用环境变量注入。

## 限制、风险与许可证

**限制**：
- 项目主要面向中小型电商，高并发场景可能需要额外优化。
- 依赖较多，部署环境要求较高。
- 部分功能可能依赖特定云服务（如阿里云 OSS）。

**风险**：
- 技术栈较老，Spring Boot 3.5 和 JDK 17 是较新版本，但部分依赖可能未及时更新。
- 项目维护活跃度未知，需关注社区动态。

**许可证**：Apache License 2.0。

## 官方链接

- GitHub 仓库：https://github.com/macrozheng/mall
- 项目文档：https://www.macrozheng.com
- 后台管理系统前端：https://github.com/macrozheng/mall-admin-web
- 前台商城前端：https://github.com/macrozheng/mall-app-web
- 微服务版本：https://github.com/macrozheng/mall-swarm
- 学习教程：https://github.com/macrozheng/mall-learning
- 在线演示：https://www.macrozheng.com/admin/index.html

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README、项目文档、代码结构。
- 分析时间：2025年4月。