Mall - 用 SpringBoot 实现一个电商系统

目前最为主流的 Web 开发技术,包括 SpringBoot、MyBatis、MongoDB、Kibina、Docker、Vue 等,都是开发者十分需要掌握的技术。有没有一个全面而又实际的项目,能把这些技术应用起来呢?一个完整的电商系统,包括管理后台和面向用户的前台,或许是进行技术学习和实战的好项目。


简介

mall,是 macrozheng 在 Github 上开源的电商系统,目前版本为 v1.0.1。

mall 项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。


使用

Mall 实现了一个管理后台,进行商品、订单、营销等的管理:

还实现了一个面向用户的商城前台,支持商品购买、推荐、签到等功能:

Mall 项目的接口如下:

mall
├── mall-common -- 工具类及通用代码
├── mall-mbg -- MyBatisGenerator生成的数据库操作代码
├── mall-security -- SpringSecurity封装公用模块
├── mall-admin -- 后台商城管理系统接口
├── mall-search -- 基于Elasticsearch的商品搜索系统
├── mall-portal -- 前台商城系统接口
└── mall-demo -- 框架搭建时的测试代码

Mall 使用了主流的 Web 技术,后端使用:

  • SpringBoot 容器+MVC框架
  • SpringSecurity 认证和授权框架
  • MyBatis ORM框架
  • MyBatisGenerator 数据层代码生成
  • Elasticsearch 搜索引擎
  • RabbitMQ 消息队列
  • Redis 分布式缓存
  • MongoDB NoSql数据库
  • LogStash 日志收集工具
  • Kibina 日志可视化查看工具
  • Nginx 静态资源服务器
  • Docker 应用容器引擎
  • Jenkins 自动化部署工具
  • Druid 数据库连接池
  • OSS 对象存储
  • MinIO 对象存储
  • JWT JWT登录支持
  • Lombok 简化对象封装工具
  • Hutool Java工具类库
  • PageHelper MyBatis物理分页插件
  • Swagger-UI 文档生成工具
  • Hibernator-Validator 验证框架

前端使用

  • Vue前端框架
  • Vue-router路由框架
  • Vuex全局状态管理框架
  • Element前端UI框架
  • Axios前端HTTP框架
  • v-charts基于Echarts的图表框架
  • Js-cookiecookie管理工具
  • nprogress进度条控件


Mall 的系统架构图如下:

业务架构图如下:

Mall 部署简单,可以使用 Docker 容器部署。部署 mall-admin:

docker run -p 8080:8080 --name mall-admin \
--link mysql:db \
--link redis:redis \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/admin/logs:/var/logs \
-d mall/mall-admin:1.0-SNAPSHOT

部署 mall-search:

docker run -p 8081:8081 --name mall-search \
--link elasticsearch:es \
--link mysql:db \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/search/logs:/var/logs \
-d mall/mall-search:1.0-SNAPSHOT

部署 mall-port:

docker run -p 8085:8085 --name mall-portal \
--link mysql:db \
--link redis:redis \
--link mongo:mongo \
--link rabbitmq:rabbit \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/portal/logs:/var/logs \
-d mall/mall-portal:1.0-SNAPSHOT



总结

Mall 是一个完整电商系统,使用了主流的 Web 开发技术,提供了逐步分解的开发教程和详尽的系统文档,为开发者提供了一个模范的商城项目样例,使得学习使用。

原文链接:,转发请注明来源!