# Springboot架构小组仓库 **Repository Path**: alickerk/Springboot-group ## Basic Information - **Project Name**: Springboot架构小组仓库 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-05-24 - **Last Updated**: 2026-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README _# 二手手机电商平台 - 项目说明文档 ## 1. 项目简介 本项目是一个基于 Spring Cloud Alibaba 微服务架构的二手手机电商平台,主要提供二手手机的买卖交易服务。 ## 2. 技术栈 | 分类 | 技术 | 版本 | | :--- | :--- | :--- | | 语言 | Java | 21 | | 框架 | Spring Boot | 3.2.5 | | 微服务 | Spring Cloud | 2023.0.2 | | 服务治理 | Spring Cloud Alibaba | 2023.0.1.0 | | 数据库 | MySQL | 8.0 | | 缓存 | Redis | 7.0 | | 服务发现 | Nacos | 2.3.2 | | 消息队列 | RocketMQ | 5.2.0 | | ORM | MyBatis Plus | 3.5.6.1 | | 网关 | Spring Cloud Gateway | - | | 认证 | Spring Security | - | ## 3. 项目结构 ``` Springboot架构小组仓库作业/ ├── mall-cart/ # 购物车服务 ├── mall-common/ # 公共模块(实体、异常、工具类) ├── mall-gateway/ # API网关服务 ├── mall-order/ # 订单服务 ├── mall-product/ # 商品服务 ├── mall-user/ # 用户服务 ├── nginx/ # Nginx配置 ├── sql/ # SQL初始化脚本 ├── 使用到的中间件/ # Docker中间件配置(仅供参考) ├── docker-compose.yml # 中间件启动配置 ├── init-all-data.sql # 数据库初始化数据脚本 ├── pom.xml # 父工程依赖管理 └── 项目说明文档.md # 项目说明文档 ``` ### 3.1 微服务模块职责 | 模块 | 职责 | 端口 | | :--- | :--- | :--- | | **mall-gateway** | API网关,路由转发、统一认证 | 8888 | | **mall-user** | 用户管理、认证授权 | 8081 | | **mall-product** | 商品管理、库存管理 | 8082 | | **mall-order** | 订单管理、消息通知 | 8083 | | **mall-cart** | 购物车管理 | 8084 | ### 3.2 中间件端口配置 | 中间件 | 端口 | 说明 | | :--- | :--- | :--- | | MySQL | 3306 | 数据库服务 | | Redis | 6379 | 缓存服务 | | Nacos | 8848 | 服务发现/配置中心 | | RocketMQ | 9876/10911 | 消息队列 | | Nginx | 80/443 | 反向代理 | ## 4. 环境要求 - JDK 21+ - Maven 3.8+ - Docker 20+ ## 5. 启动流程 ### 5.1 启动中间件(Docker) ```bash # 进入项目目录 cd Springboot架构小组仓库作业 # 启动所有中间件 docker-compose up -d # 查看启动状态 docker-compose ps ``` ### 5.2 启动微服务(IDEA) 按照以下顺序启动微服务: 1. **mall-gateway** - API网关 2. **mall-user** - 用户服务 3. **mall-product** - 商品服务 4. **mall-cart** - 购物车服务 5. **mall-order** - 订单服务 ### 5.3 验证服务 - Nacos控制台: http://localhost:8848/nacos - 用户名: nacos - 密码: nacos - 网关访问: http://localhost:8888 ## 6. 数据库设计 ### 6.1 数据库列表 | 数据库名 | 所属服务 | 说明 | | :--- | :--- | :--- | | mall_user | mall-user | 用户数据 | | mall_product | mall-product | 商品数据 | | mall_order | mall-order | 订单数据 | | mall_cart | mall-cart | 购物车数据 | ### 6.2 核心表结构 #### 6.2.1 用户表 (user) | 字段 | 类型 | 说明 | | :--- | :--- | :--- | | id | BIGINT | 用户ID(主键) | | username | VARCHAR(50) | 用户名(唯一) | | password | VARCHAR(255) | 密码(BCrypt加密) | | email | VARCHAR(100) | 邮箱 | | phone | VARCHAR(20) | 手机号 | | nickname | VARCHAR(50) | 昵称 | | gender | TINYINT | 性别(0-未知 1-男 2-女) | | avatar | VARCHAR(255) | 头像URL | | status | TINYINT | 状态(0-禁用 1-启用) | | create_time | DATETIME | 创建时间 | | update_time | DATETIME | 更新时间 | | is_deleted | TINYINT | 逻辑删除 | #### 6.2.2 商品表 (product) | 字段 | 类型 | 说明 | | :--- | :--- | :--- | | id | BIGINT | 商品ID(主键) | | name | VARCHAR(100) | 商品名称 | | category_id | BIGINT | 分类ID | | brand | VARCHAR(50) | 品牌 | | model | VARCHAR(50) | 型号 | | product_condition | TINYINT | 成色等级(1-全新 2-几乎全新 3-轻微使用) | | price | DECIMAL(10,2) | 价格 | | original_price | DECIMAL(10,2) | 原价 | | stock | INT | 库存 | | description | TEXT | 商品描述 | | images | VARCHAR(500) | 图片URL(逗号分隔) | | status | TINYINT | 状态(0-下架 1-上架) | | create_time | DATETIME | 创建时间 | | update_time | DATETIME | 更新时间 | | is_deleted | TINYINT | 逻辑删除 | #### 6.2.3 订单表 (orders) | 字段 | 类型 | 说明 | | :--- | :--- | :--- | | id | BIGINT | 订单ID(主键) | | order_no | VARCHAR(32) | 订单编号 | | user_id | BIGINT | 用户ID | | product_id | BIGINT | 商品ID | | quantity | INT | 数量 | | price | DECIMAL(10,2) | 订单金额 | | status | TINYINT | 订单状态 | | create_time | DATETIME | 创建时间 | | update_time | DATETIME | 更新时间 | | is_deleted | TINYINT | 逻辑删除 | #### 6.2.4 购物车表 (cart) | 字段 | 类型 | 说明 | | :--- | :--- | :--- | | id | BIGINT | 购物车ID(主键) | | user_id | BIGINT | 用户ID | | product_id | BIGINT | 商品ID | | quantity | INT | 数量 | | create_time | DATETIME | 创建时间 | | update_time | DATETIME | 更新时间 | | is_deleted | TINYINT | 逻辑删除 | ## 7. API接口说明 ### 7.1 用户服务 API | 接口 | 方法 | 说明 | | :--- | :--- | :--- | | /api/user/register | POST | 用户注册 | | /api/user/login | POST | 用户登录 | | /api/user/{id} | GET | 获取用户信息 | | /api/user/{id} | PUT | 更新用户信息 | | /api/user/{id} | DELETE | 删除用户 | ### 7.2 商品服务 API | 接口 | 方法 | 说明 | | :--- | :--- | :--- | | /api/product | GET | 获取商品列表 | | /api/product/{id} | GET | 获取商品详情 | | /api/product | POST | 添加商品 | | /api/product/{id} | PUT | 更新商品 | | /api/product/{id} | DELETE | 删除商品 | | /api/product/{id}/stock | PUT | 更新库存 | ### 7.3 订单服务 API | 接口 | 方法 | 说明 | | :--- | :--- | :--- | | /api/order | POST | 创建订单 | | /api/order/user/{userId} | GET | 获取用户订单 | | /api/order/{id} | GET | 获取订单详情 | | /api/order/{id} | PUT | 更新订单状态 | ### 7.4 购物车服务 API | 接口 | 方法 | 说明 | | :--- | :--- | :--- | | /api/cart/user/{userId} | GET | 获取购物车 | | /api/cart | POST | 添加商品到购物车 | | /api/cart/{id} | PUT | 更新购物车数量 | | /api/cart/{id} | DELETE | 删除购物车项 | ## 8. 配置说明 ### 8.1 Nacos 服务注册 各微服务通过以下配置注册到 Nacos: ```yaml spring: cloud: nacos: discovery: server-addr: localhost:8848 service: ${spring.application.name} ``` ### 8.2 数据库连接 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mall_user?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: password ``` ### 8.3 Redis 配置 ```yaml spring: data: redis: host: localhost port: 6379 ``` ## 9. 部署说明 ### 9.1 开发环境 1. 确保 Docker 已安装并运行 2. 使用 `docker-compose up -d` 启动中间件 3. 在 IDEA 中依次启动各微服务模块 4. 访问 Nacos 确认服务注册成功 ### 9.2 生产环境 建议使用 Docker Compose 或 Kubernetes 进行容器化部署,配置负载均衡和服务发现。 ## 10. 注意事项 1. **端口占用**: 确保本地端口 3306、6379、8848、9876 未被占用 2. **启动顺序**: 先启动中间件,再启动网关,最后启动业务服务 3. **数据库初始化**: 首次启动前需执行 `init-all-data.sql` 初始化数据 4. **Nacos 配置**: 确保所有服务的 Nacos 地址配置正确 ## 11. 项目维护 ### 11.1 数据库初始化 项目目录下的 `init-all-data.sql` 文件是项目的初始化数据存储表(使用 MySQL 8.0 版本实现持久化数据存储),已包含四个数据库的创建脚本和初始化数据。 ### 11.2 中间件配置 `docker-compose.yml` 文件包含五个中间件的配置: - MySQL: 3306 端口 - Redis: 6379 端口 - Nacos: 8848 端口 - RocketMQ: 9876/10911 端口 - Nginx: 80/443 端口 --- **作者**: springboot小组 **日期**: 2026年 **版本**: v1.0_