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 |
- JDK 17+
- Maven 3.6+
- Node.js 18+
- MySQL 8.0+
- Redis
- RabbitMQ
- Elasticsearch 8.x
- Nacos 2.x
生产环境还需配置 JWT_SECRET、阿里云 ALIBABA_CLOUD_ACCESS_KEY、
ALIBABA_CLOUD_SECRET_KEY、SMS_SIGN_NAME、SMS_TEMPLATE_CODE,并设置
SMS_DEV_MODE=false。默认开发模式会在验证码接口响应中返回验证码,仅用于本地联调。
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# 单机模式
startup.cmd -m standalone# 编译全部模块
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)cd renren-fast-vue
npm install
npm run dev- 后台管理: http://localhost:8001
- API 网关: http://localhost:88
- 监控中心: http://localhost:9095
- Nacos: http://localhost:8848/nacos
| 数据库 | 说明 |
|---|---|
| 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 |