Skip to content

Repository files navigation

谷粒商城(Gulimall)

B2C 模式电商平台,仿京东商城,基于 SpringCloud Alibaba 微服务架构。

项目结构

gulimall/
├── pom.xml                    # 父 POM (Spring Boot 3.3.2 + SpringCloud 2023.0.3)
├── gulimall-common/           # 公共模块(R 统一返回、异常处理、MyBatis-Plus)
├── gulimall-gateway/          # API 网关 (SpringCloud Gateway + WebFlux)
├── gulimall-product/          # 商品服务 (端口 8100)
├── gulimall-order/            # 订单服务 (端口 8200)
├── gulimall-member/           # 会员服务 (端口 8300)
├── gulimall-coupon/           # 优惠券/营销服务 (端口 8400)
├── gulimall-ware/             # 仓储服务 (端口 8500)
├── gulimall-search/           # 检索服务 (端口 8600) - Elasticsearch
├── gulimall-cart/             # 购物车服务 (端口 8700) - Redis
├── gulimall-auth-server/      # 认证中心 (端口 8800) - OAuth2.0 / JWT
├── gulimall-third-party/      # 第三方服务 (端口 8900) - 阿里云 OSS
├── gulimall-seckill/          # 秒杀服务 (端口 9000) - Redis + RabbitMQ
├── gulimall-admin/            # 监控中心 (端口 9095) - SpringBoot Admin
├── renren-generator/          # 代码生成器 (端口 9090)
├── renren-fast/               # 后台管理系统 API (端口 8080)
├── renren-fast-vue/           # 后台管理前端 (Vue 2 + Element UI, 端口 8001)
├── sql/                       # 数据库初始化脚本 (7 个 SQL 文件)
└── selenium/                  # 自动化测试脚本

技术栈

分类 技术
语言 Java 17
框架 Spring Boot 3.3.2
微服务 SpringCloud Alibaba 2023.0.1.2
注册/配置 Nacos
网关 SpringCloud Gateway (WebFlux)
ORM MyBatis-Plus 3.5.5
数据库 MySQL 8.3 (6 个业务库)
缓存 Redis + Redisson
消息队列 RabbitMQ
搜索引擎 Elasticsearch 8.13
安全 SpringSecurity 6 + JWT + OAuth2.0
监控 SpringBoot Admin 3.3.2
构建 Maven 3.6+
前端 Vue 2.7 + Element UI + Vite

快速开始

1. 环境准备

  • JDK 17+
  • Maven 3.6+
  • Node.js 18+
  • MySQL 8.0+
  • Redis
  • RabbitMQ
  • Elasticsearch 8.x
  • Nacos 2.x

生产环境还需配置 JWT_SECRET、阿里云 ALIBABA_CLOUD_ACCESS_KEYALIBABA_CLOUD_SECRET_KEYSMS_SIGN_NAMESMS_TEMPLATE_CODE,并设置 SMS_DEV_MODE=false。默认开发模式会在验证码接口响应中返回验证码,仅用于本地联调。

2. 初始化数据库

mysql -u root -p < sql/01-init-databases.sql
mysql -u root -p < sql/02-pms-product.sql
mysql -u root -p < sql/03-oms-order.sql
mysql -u root -p < sql/04-ums-member.sql
mysql -u root -p < sql/05-sms-coupon.sql
mysql -u root -p < sql/06-wms-ware.sql
mysql -u root -p < sql/07-admin.sql

已有数据库升级时,额外执行库存锁定迁移:

mysql -u root -p < sql/08-stock-lock-migration.sql

3. 启动 Nacos Server

# 单机模式
startup.cmd -m standalone

4. 编译并启动微服务

# 编译全部模块
mvn clean package -DskipTests

# 按依赖顺序启动
# 1. gulimall-gateway        (88)
# 2. gulimall-product        (8100)
# 3. gulimall-order          (8200)
# 4. gulimall-member         (8300)
# 5. gulimall-coupon         (8400)
# 6. gulimall-ware           (8500)
# 7. gulimall-search         (8600)
# 8. gulimall-cart           (8700)
# 9. gulimall-auth-server    (8800)
# 10. gulimall-third-party    (8900)
# 11. gulimall-seckill        (9000)
# 12. gulimall-admin          (9095)
# 13. renren-fast             (8080)

5. 启动前端

cd renren-fast-vue
npm install
npm run dev

6. 访问

数据库

数据库 说明
gulimall_pms 商品服务(Product)
gulimall_oms 订单服务(Order)
gulimall_ums 会员服务(Member)
gulimall_sms 营销服务(Coupon)
gulimall_wms 仓储服务(Ware)
gulimall_admin 后台管理(Admin)

模块统计

指标 数量
Maven 模块 16
微服务 13
Java 源文件 ~250+
MySQL 数据库 6
数据库表 ~50+
Vue 页面 11

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages