{"repo":"wayn111/waynboot-mall","free":true,"listed":false,"github":"https://github.com/wayn111/waynboot-mall","clone":"git clone https://github.com/wayn111/waynboot-mall.git","description":"这是一套全部开源的微商城项目，包含一个运营后台、H5商城前台和服务端接口。 实现了商城所需的首页展示、商品分类、商品详情、sku详情、商品搜索、购物车、结算下单、线上支付，商品评论等一系列功能。 技术上基于最新得Springboot3.0、jdk17，整合了MySql、Redis、RabbitMQ、ElasticSearch等常用中间件，对于初学者而言根据readme中的本地开发指南就能成功启动项目。还提供 docker-compose 一键部署脚本，只需要十多分钟就能启动商城前后台所有服务。","language":"Java","stars":1250,"topics":["springboot2","mybatis","mall","redis","elasticsearch","rabbitmq","waynboot","jwt","java","mysql8"],"license":"MIT","category":"databases-storage","readme_excerpt":"waynboot-mall waynboot-mall 是一个基于 Spring Boot 3、Java 17 的 Maven 多模块商城后端项目，覆盖移动端商城、后台管理、消息消费、定时任务、Redis 和 Elasticsearch 等能力。项目当前重点围绕商品、订单、库存、支付、MQ、本地消息补偿和对账治理进行拆分，目标是让交易链路在高并发场景下更易维护、更可扩展。 技术栈 分类 技术 --- --- 基础框架 Spring Boot 3.1.4、Java 17 Web 与安全 Spring MVC、后台 Spring Security + JWT、移动端 Sa-Token 数据访问 MyBatis-Plus、MySQL、Druid 缓存 Redis、Lettuce、Lua 脚本 搜索 Elasticsearch 7 消息 RabbitMQ、延迟消息、本地消息表 定时任务 Spring Scheduled 支付 微信支付、支付宝、易支付 测试 JUnit 5、Mockito、Spring Boot Test 模块结构 架构分层 项目采用入口层、编排层、领域能力层、异步一致性层和治理层分层设计。 入口模块不直接承载核心业务逻辑。 admin-api 和 mobile-api 主要负责接口适配；交易、库存、商品、购物车、营销等实现分别收敛在 waynboot-domain- 模块。 waynboot-domain-api 只放跨领域契约， waynboot-common 保留通用配置、切面、策略接口、通用模型和基础设施。 核心业务能力 移动端鉴权 waynboot-mobile-api 已从 Spring Security + JWT 切换为 Sa-Token，后台 waynboot-admin-api 仍保留 Spring Security + JWT。这样可以减少移动端入口层的过滤链复杂度，同时避免影响后台已有的 @PreAuthorize 权限体系。 移动端鉴权约定： - 登录接口仍返回 token 字符串，前端请求头仍使用 Authorization 。 - 兼容 Authorization: 和 Authorization: Bearer 两种格式。 - Sa-Token 登录态和用户快照写入 Redis Session，业务代码通过 MobileSecurityUtils 获取当前登录用户。 - 移动端未登录、鉴权失败由 MobileSaTokenExceptionHandler 统一返回业务错误码。 关键代码入口： 商品与购物车 - 商品后台维护商品、SKU、规格、属性、类目、库存等基础数据。 - 移动端商品详情支持聚合查询和 Redis 缓存。 - 商品写入、库存变更、虚拟销量变更后主动删除商品详情缓存，避免详情页展示旧库存。 - 购物车聚合商品、SKU、优惠券和价格信息，接口返回使用明确 VO，不直接暴露数据库实体。 订单链路 下单链路按责任链和领域支撑服务拆分，核心步骤包括： 订单状态统一由 OrderStateTransitionSupport 管理，支付、取消、发货、退款、确认收货等入口都必须校验状态流转，并通过数据库当前状态条件更新避免并发覆盖。 秒杀链路 秒杀功能采用“漏斗过滤 + Redis 原子扣减 + 本地消息可靠投递 + MQ 异步落单 + 60 秒延迟关单”的链路设计。订单仍统一落到 shop order 和 shop order goods ，秒杀活动信息通过 shop order activity re","default_branch":null,"files":null,"tree":[],"storefront":"/r/wayn111","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/wayn111/waynboot-mall/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}