Skip to content
/ mall Public
forked from macrozheng/mall

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

License

Notifications You must be signed in to change notification settings

hryang/mall

 
 

Repository files navigation

mall

前言

mall 项目致力于打造一个完整的电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。本项目是将 mall 项目 serverless 化,让开发者能够在1小时内构建弹性、高可用、低成本的微服务。

架构

Mall 包括 mall-admin,mall-portal,mall-search 3个服务。

Serverless 化

借助阿里云函数计算的 custom container 功能,开发者能够快速的将 mall 项目以容器镜像的方式运行在函数计算上。函数计算默认提供了流量治理,灰度发布,自动伸缩,高可用等功能,开发者只需要专注于应用本身逻辑开发,而无需关注底层平台的管理,开发和运维效率大幅提升。

0. 前置条件

  1. 安装好 docker。
  2. 安装 Serverless Devs 开发工具。

1. 依赖服务部署

Mall 项目依赖了 MySQL,Redis,RabbitMQ,ElasticSearch 等项目,这些软件在公有云上都有对应的云产品。对于生产环境的应用,建议使用云产品获得更好的性能和稳定性。

对于个人开发者尝鲜或者快速实现原型而言,找一台虚拟机部署上述组件是更简单、成本更低的方式。我们提供了对应的组件的 Dockerfile,只需要两条命令就能完成依赖组件的容器镜像的编译和单机部署。

2. Mall 应用服务部署

修改 mall-admin/src/main/resources/mall-portal/src/main/resources/mall-search/src/main/resources/ 目录下的 application-prod.yml 文件,将 host 的值设置为第一步部署依赖组件所在机器的 ip。

执行下述命令生成 mall 应用的容器镜像。在 Linux 上,docker 需要 root 权限,因此需要以 sudo 的方式执行命令。

sudo -E mvn package

执行 sudo docker images,显示已经生成了 mall/mall-adminmall/mall-portalmall/mall-search 的容器镜像。

将上述镜像 push 到阿里云的容器镜像仓库中。

应用日志收集

后台管理系统

前端项目mall-admin-web地址:https://github.com/macrozheng/mall-admin-web

项目演示地址: http://www.macrozheng.com/admin/index.html

后台管理系统功能演示

前台商城系统

前端项目mall-app-web地址:敬请期待......

项目演示地址:http://www.macrozheng.com/app/mainpage.html

前台商城系统功能演示

组织结构

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

技术选型

后端技术

技术 说明 官网
SpringBoot 容器+MVC框架 https://spring.io/projects/spring-boot
SpringSecurity 认证和授权框架 https://spring.io/projects/spring-security
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatisGenerator 数据层代码生成 http://www.mybatis.org/generator/index.html
Elasticsearch 搜索引擎 https://github.com/elastic/elasticsearch
RabbitMQ 消息队列 https://www.rabbitmq.com/
Redis 分布式缓存 https://redis.io/
MongoDB NoSql数据库 https://www.mongodb.com
LogStash 日志收集工具 https://github.com/elastic/logstash
Kibina 日志可视化查看工具 https://github.com/elastic/kibana
Nginx 静态资源服务器 https://www.nginx.com/
Docker 应用容器引擎 https://www.docker.com
Jenkins 自动化部署工具 https://github.com/jenkinsci/jenkins
Druid 数据库连接池 https://github.com/alibaba/druid
OSS 对象存储 https://github.com/aliyun/aliyun-oss-java-sdk
MinIO 对象存储 https://github.com/minio/minio
JWT JWT登录支持 https://github.com/jwtk/jjwt
Lombok 简化对象封装工具 https://github.com/rzwitserloot/lombok
Hutool Java工具类库 https://github.com/looly/hutool
PageHelper MyBatis物理分页插件 http://git.oschina.net/free/Mybatis_PageHelper
Swagger-UI 文档生成工具 https://github.com/swagger-api/swagger-ui
Hibernator-Validator 验证框架 http://hibernate.org/validator

前端技术

技术 说明 官网
Vue 前端框架 https://vuejs.org/
Vue-router 路由框架 https://router.vuejs.org/
Vuex 全局状态管理框架 https://vuex.vuejs.org/
Element 前端UI框架 https://element.eleme.io
Axios 前端HTTP框架 https://github.com/axios/axios
v-charts 基于Echarts的图表框架 https://v-charts.js.org/
Js-cookie cookie管理工具 https://github.com/js-cookie/js-cookie
nprogress 进度条控件 https://github.com/rstacruz/nprogress

架构图

系统架构图

系统架构图

业务架构图

系统架构图

模块介绍

后台管理系统 mall-admin
前台商城系统 mall-portal

功能结构图-前台.jpg

开发进度

项目开发进度图

环境搭建

开发工具

工具 说明 官网
IDEA 开发IDE https://www.jetbrains.com/idea/download
RedisDesktop redis客户端连接工具 https://github.com/qishibo/AnotherRedisDesktopManager
Robomongo mongo客户端连接工具 https://robomongo.org/download
SwitchHosts 本地host管理 https://oldj.github.io/SwitchHosts/
X-shell Linux远程连接工具 http://www.netsarang.com/download/software.html
Navicat 数据库连接工具 http://www.formysql.com/xiazai.html
PowerDesigner 数据库设计工具 http://powerdesigner.de/
Axure 原型设计工具 https://www.axure.com/
MindMaster 思维导图设计工具 http://www.edrawsoft.cn/mindmaster
ScreenToGif gif录制工具 https://www.screentogif.com/
ProcessOn 流程图绘制工具 https://www.processon.com/
PicPick 图片处理工具 https://picpick.app/zh/
Snipaste 屏幕截图工具 https://www.snipaste.com/
Postman API接口调试工具 https://www.postman.com/
Typora Markdown编辑器 https://typora.io/

开发环境

工具 版本号 下载
JDK 1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Mysql 5.7 https://www.mysql.com/
Redis 5.0 https://redis.io/download
MongoDB 4.2.5 https://www.mongodb.com/download-center
RabbitMQ 3.7.14 http://www.rabbitmq.com/download.html
Nginx 1.10 http://nginx.org/en/download.html
Elasticsearch 7.6.2 https://www.elastic.co/downloads/elasticsearch
Logstash 7.6.2 https://www.elastic.co/cn/downloads/logstash
Kibana 7.6.2 https://www.elastic.co/cn/downloads/kibana

搭建步骤

Windows环境部署

Docker环境部署

相关环境部署

公众号

学习不走弯路,关注公众号「macrozheng」,回复「学习路线」,获取mall项目专属学习路线!

加微信群交流,公众号后台回复「加群」即可。

公众号图片

许可证

Apache License 2.0

Copyright (c) 2018-2021 macrozheng

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.9%
  • Other 0.1%