社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

JavaGuide • 5 年前 • 750 次点击  

去年12月的时候,mall项目正式发布,作为Github上面最火的SpringBoot实战电商项目,累计获得了25000+Star。今年还是12月,mall项目微服务版本mall-swarm正式发布,文档齐全,附带全套SpringCloud教程。项目地址:https://github.com/macrozheng/mall-swarm

项目介绍

mall-swarm是一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、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系列教程:http://www.macrozheng.com
  • 配套Spring Cloud系列教程:https://github.com/macrozheng/springcloud-learning

项目演示

  • 后台管理系统:http://www.macrozheng.com/admin/index.html
  • 移动端商城系统:http://www.macrozheng.com/app/index.html

技术选型

后端技术

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

前端技术

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

环境搭建

开发环境搭建

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

简易环境搭建流程:

  • 安装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


推荐阅读

  1. 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!

  2. 【原创】不了解布隆过滤器?一文给你整的明明白白

  3. 【原创】Bigo的Java面试,我挂在了第三轮技术面上...

  4. 新手也能看懂的线程池学习总结

  5. 如何在 Spring/Spring Boot 中做参数校验?你需要了解的都在这里!

  6. 业务复杂=if else?刚来的大神竟然用策略+工厂彻底干掉了他们!

  7. 为了你,我又又又把Java学习路线和方法更新了一遍

  8. 一些不错 Java 实践推荐!建议阅读3遍以上!

  9. Github 上热门的 Spring Boot 项目实战推荐



文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*) 


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50970
 
750 次点击