macrozheng / mall

macrozheng/mall

open_in_new前往仓库

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 仓库 README、项目文档、代码结构。
  • 分析时间:2025年4月。