Github标星25K+Star,SpringBoot实战电商项目mall出SpringCloud版本啦!

去年12月的时候,mall项目正式发布,做为Github上面最火的SpringBoot实战电商项目,累计得到了25000+Star。今年仍是12月,mall项目微服务版本mall-swarm正式发布,文档齐全,附带全套SpringCloud教程。html

项目介绍

mall-swarm是一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 二、MyBatis、Docker、Elasticsearch等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。前端

系统架构图

系统架构图

组织结构

mall
├── mall-common -- 工具类及通用代码模块
├── mall-mbg -- MyBatisGenerator生成的数据库操做代码模块
├── mall-security -- 封装SpringSecurity+JWT的安全认证的模块
├── mall-registry -- 基于Eureka的微服务注册中心
├── mall-config -- 基于Spring Cloud Config的微服务配置中心
├── mall-gateway -- 基于Spring Cloud Gateway的微服务API网关服务
├── mall-monitor -- 基于Spring Boot Admin的微服务监控中心
├── mall-admin -- 后台管理系统服务
├── mall-search -- 基于Elasticsearch的商品搜索系统服务
├── mall-portal -- 移动端商城系统服务
└── mall-demo -- 微服务远程调用测试服务
mall
├── mall-common -- 工具类及通用代码模块
├── mall-mbg -- MyBatisGenerator生成的数据库操做代码模块
├── mall-security -- 封装SpringSecurity+JWT的安全认证的模块
├── mall-registry -- 基于Eureka的微服务注册中心
├── mall-config -- 基于Spring Cloud Config的微服务配置中心
├── mall-gateway -- 基于Spring Cloud Gateway的微服务API网关服务
├── mall-monitor -- 基于Spring Boot Admin的微服务监控中心
├── mall-admin -- 后台管理系统服务
├── mall-search -- 基于Elasticsearch的商品搜索系统服务
├── mall-portal -- 移动端商城系统服务
└── mall-demo -- 微服务远程调用测试服务

项目文档

  • 项目文档mall系列教程:http://www.macrozheng.comios

  • 配套Spring Cloud系列教程:https://github.com/macrozheng/springcloud-learninggit

项目演示

  • 后台管理系统:http://www.macrozheng.com/admin/index.htmlgithub

  • 移动端商城系统:http://www.macrozheng.com/app/index.htmlspring

技术选型

后端技术

技术 说明
Spring Cloud 微服务框架
Spring Boot 容器+MVC框架
Spring Security 认证和受权框架
MyBatis ORM框架
MyBatisGenerator 数据层代码生成
PageHelper MyBatis物理分页插件
Swagger-UI 文档生产工具
Elasticsearch 搜索引擎
RabbitMq 消息队列
Redis 分布式缓存
MongoDb NoSql数据库
Docker 应用容器引擎
Druid 数据库链接池
OSS 对象存储
JWT JWT登陆支持
LogStash 日志收集
Lombok 简化对象封装工具
Seata 全局事务管理框架

前端技术

技术 说明
Vue 前端框架
Vue-router 路由框架
Vuex 全局状态管理框架
Element 前端UI框架
Axios 前端HTTP框架
v-charts 基于Echarts的图表框架

环境搭建

开发环境搭建

mall-swarm中使用到的环境和mall项目中大体相同,具体能够查看mall在Windows环境下的部署sql

简易环境搭建流程:数据库

  • 安装IDEA并导入项目源码;后端

  • 安装MySql,建立一个mall数据库,并导入/document/sql/mall.sql文件;缓存

  • 安装Redis、Elasticsearch、MongoDB、RabbitMQ等环境。

项目部署

mall-swarm项目启动有前后顺序,你们要按照如下顺序启动。

启动注册中心mall-registry

  • 直接运行com.macro.mall.MallRegistryApplication的main函数便可;

  • 运行完成后能够经过注册中心控制台查看:http://localhost:8001

启动配置中心mall-config

  • 直接运行com.macro.mall.MallConfigApplication的main函数便可;

  • 访问如下接口获取mall-admin在dev环境下的配置信息:http://localhost:8301/master/admin-dev.yml

启动监控中心mall-monitor

  • 直接运行com.macro.mall.MallMonitorApplication的main函数便可;

  • 运行完成后能够经过监控中心控制台查看:http://localhost:8101

  • 输入帐号密码macro:123456能够登陆查看。

启动网关服务mall-gateway

  • 直接运行com.macro.mall.MallGatewayApplication的main函数便可;

  • 访问如下接口获取动态路由规则:http://localhost:8201/actuator/gateway/routes

启动后台管理服务mall-admin

  • 直接运行com.macro.mall.MallAdminApplication的main函数便可;

  • 经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-admin/swagger-ui.html

  • 登陆接口地址:http://localhost:8201/mall-admin/admin/login

  • 访问登陆接口获取到token后放入认证的头信息便可正常访问其余须要登陆的接口:

启动前台服务mall-portal

  • 直接运行com.macro.mall.portal.MallPortalApplication的main函数便可;

  • 经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-portal/swagger-ui.html

  • 登陆接口地址:http://localhost:8201/mall-portal/sso/login

  • 调用须要登陆的接口方式同mall-admin

启动搜索服务mall-search

  • 直接运行com.macro.mall.search.MallSearchApplication的main函数便可;

  • 经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-search/swagger-ui.html

启动测试服务mall-demo

  • 直接运行com.macro.mall.MallAdminApplication的main函数便可;

  • 经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-demo/swagger-ui.html

  • 能够经过调用FeignAdminController、FeignPortalController、FeignSearchController来测试使用Feign的远程调用功能。

效果展现

  • 注册中心服务信息:

  • 监控中心服务概览信息:

  • 监控中心单应用详情信息:

扩展解决方案

项目地址

开源不易,以为本项目有帮助的朋友能够点个Star支持下!

https://github.com/macrozheng/mall-swarm


欢迎关注,点个在看