macrozheng / mall
macrozheng/mall
mall是一套基于Spring Boot+MyBatis的电商系统,含前台商城与后台管理,支持Docker部署。前台有首页、商品、购物车、订单等模块;后台涵盖商品、订单、会员、促销、运营、内容、统计、财务、权限等管理功能。
项目概览
项目概述
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。
克隆项目:
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月。