当前位置:首页 > 技术文章 > 正文内容

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

arlanguage3个月前 (01-31)技术文章33

目前最为主流的 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 开发技术,提供了逐步分解的开发教程和详尽的系统文档,为开发者提供了一个模范的商城项目样例,使得学习使用。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1831.html

标签: nginx框架
分享给朋友:

“Mall - 用 SpringBoot 实现一个电商系统” 的相关文章

Nginx流控

cnLinuxer 开源Linux 开源Linux专注分享开源技术知识流量限制(rate-limiting),是Nginx中一个非常实用却经常被错误理解和错误配置的功能。我们可以用来限制用户在给定时间内HTTP请求的数量。请求,可以是一个简单网站首页的GET请求,也可以是登录表单的POST请求。流...

Nginx动静分离简单实现示例讲解

简述本文主要介绍如何实现Nginx动静分离。动静分离动静分离是根据一定规则把静态文件(html、css、js、jpg等)和动态文件(jsp,.do等)区分开来,采用静态文件和动态文件分开部署,以提高用户访问静态文件的速度,降低对后台应用的访问,提高服务器响应速度和性能。静态文件由Nginx服务器处理...

解决Apache 2.4+PHP5.6不支持CURL

跑一个demo,突然发现,服务器上最普通的Apache 2.4+PHP5.6组合,不支持curl,报告没有curl_init函数;而php.ini里面已经打开了php_curl.dll,而且php -i的输出是正常的,说明curl是可以执行的。折腾了半天百思不得其解,最后索性把php5.6、apac...

WordPress切换到Nginx服务器教程

这几天将几个WordPress的Web服务器从Apache切换到了Nginx,中间遇到了不少问题,因此记录一下,以便日后维护使用。对于WordPress站点来说,固定链接主要是通过根目录下的.htaccess文件来控制,切换服务器后,Nginx的rewrite格式和Apache的不同,需要修改。先卸...

「每天一道面试题」Nginx 502错误原因和解决方法

Nginx 502错误原因和解决方法不管你是做运维还是做开发,哪怕你是游客,时不时会遇到 502 Bad Gateway 或 504 Gateway Time-out。出现这页面,把服务重启下,再实在不行重启下服务器,问题就解决了,特殊情况请继续阅读。状态码解释502 Bad Gateway:作为网...

压测nginx出现的问题分析

压测nginx出现no live upstreams while connecting to upstream的问题分析基础环境版本信息Centos 7.1nginx version: openresty/1.13.6.2nginx配置信息stream {   ...