🏬waynboot-mall 是一套全部开源的 H5 商城项目,包含运营后台、H5 商城前台和后端接口三个项目 。实现了一套完整的商城业务,有首页展示、商品分类、商品详情、sku 详情、商品搜索、加入购物车、结算下单、支付宝/微信支付/易支付对接、我的订单列表、商品评论等一系列功能 🔥。
商城所有项目源码全部开源,绝无套路。技术上基于 Spring Boot3.1 、Mybatis Plus 、Spring Security 、Vue2 ,整合了 Mysql 、Redis 、RabbitMQ 、ElasticSearch 、Nginx 等常用中间件,根据我多年线上项目实战经验总结开发而来不断优化、完善。
对于初学者而言 waynboot-mall 项目是非常易于本地开发部署的,根据 readme 中的本地开发指南就能成功启动项目。
并且提供了 docker-compose 服务器一键部署脚本,只需要十多分钟就能在服务器上启动商城前后台所有服务。
在 🔥waynboot-mall🔥 最新的 2.0.0 版本中,我重构了项目后端的大部分代码,将整个项目的代码可维护性提升了一个档次,并且商城前后台所有接口全部接入 apifox ,供大家在线查看。此外对接第三方支付使用了策略模式,解耦支付代码逻辑。还修复了一些老旧 bug ,提升商城体验,
功能上,waynboot-mall 项目可分为 “H5 商城前台” 和 “运管后台” 两部分。
系统架构上,waynboot-mall 项目秉持着小而精的架构特征,经典而不失优雅,
从系统设计来看,waynboot-mall 项目选用当前最新 Spring Boot3.1 、MyBatis-Plus 开发而来,项目中其他系统组件介绍如下图:
本项目使用 apifox 提供的在线文档功能供大家在线查看以及浏览。
文档地址: https://apifox.com/apidoc/shared-f48b11f5-6137-4722-9c70-b9c5c3e5b09b
git clone git@github.com:wayn111/waynboot-mall.git
将 waynboot-mall 目录用 idea 打开,导入 maven 依赖
安装 Jdk17 、Mysql8.0+、Redis3.0+、RabbitMQ3.0+(含延迟消息插件)、ElasticSearch7.0+(含分词、拼英插件)到本地
在项目根目录下,找到 wayn_shop_*.sql
文件,新建 mysql 数据库 wayn_shop ,导入其中
下载商城图片压缩包,将 zip 中所有图片解压缩部署到 D:/waynshop/webp 目录下,如下
修改 Mysql 、Redis 、RabbitMQ 、Elasticsearch 连接配置,修改application-dev.yml
以及application.yml
文件中数据连接配置相关信息
run AdminApplication
,启动后台项目run MobileApplication
,启动 h5 商城项目run MessageApplication
,启动消费者项目请查看商城 H5 前端项目 https://github.com/wayn111/waynboot-mobile ,readme 文档,进行本地启动
请查看商城后管前端项目 https://github.com/wayn111/waynboot-admin ,readme 文档,进行本地启动
|-- db-init // 数据库初始化脚本
|-- waynboot-monitor // 监控模块
|-- waynboot-util // 帮助模块,包含项目基础帮助类
| |-- constant // 基础常量
| |-- converter // 基础转换类
| |-- enums // 基础枚举
| |-- exception // 基础异常
| |-- util // 基础帮助类
|-- waynboot-admin-api // 运营后台 api 模块,提供后台项目 api 接口
| |-- controller // 后台接口
| |-- framework // 后台配置相关
|-- waynboot-common // 通用模块,包含项目核心基础类
| |-- annotation // 通用注解
| |-- base // 通用注解
| |-- core // 核心配置,包含项目 entity 、mapper 、service 、vo 定义
| |-- config // 通用配置
| |-- design // 设计模式实现
| |-- dto // dto 定义
| |-- request // 接口请求定义
| |-- reponse // 接口响应定义
| |-- task // 任务相关
| |-- util // 通用帮助类
| |-- wapper // 通用包装类,包含易支付代码
|-- waynboot-data // 数据模块,通用中间件数据访问
| |-- waynboot-data-redis // redis 访问配置模块
| |-- waynboot-data-elastic // elastic 访问配置模块
|-- waynboot-message // 消息模块,rabbitmq 操作
| |-- waynboot-message-core // rabbitmq 消息配置,定义队列、交换机、绑定队列到交换机
| |-- waynboot-message-consumer // rabbitmq 消费者,消费消息
|-- waynboot-mobile-api // H5 商城 api 模块,提供 H5 商城 api 接口
| |-- controller // 前台接口
| |-- framework // 前台配置相关
|-- pom.xml // maven 父项目依赖,定义子项目依赖版本
|-- ...
该项目以 MIT 协议开放源码,意味着你能够自由地使用、复制甚至商业化。我鼓励任何有兴趣的朋友参与进来,共同进行项目的维护和改进。无论是修复 bug ,改进代码还是添加新功能,都是我所期待的。
waynboot-mall 项目发展至今,希望给各位初中级开发者、大学生作为一个接触线上商城实战项目的参考标杆,项目的模块划分比较合理,代码规范也有所注重,接口文档齐全,所以是非常值得推荐给大家使用参考的。
大家可以关注 waynboot-mall 这个项目,点点 star ,这是对我大得鼓励。
GitHub 地址: https://github.com/wayn111/waynboot-mall
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.