# SpringCloudAi **Repository Path**: fuxing-chen/spring-cloud-ai ## Basic Information - **Project Name**: SpringCloudAi - **Description**: 使用AI生成的 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微服务项目说明 ## 项目结构 ``` microservice-project/ ├── common/ # 公共模块 │ ├── pom.xml │ └── src/main/java/com/microservice/common/ │ ├── result/ # 统一返回结果 │ └── exception/ # 全局异常处理 ├── user-service/ # 用户服务 (端口: 8001) │ ├── pom.xml │ └── src/main/java/com/microservice/user/ │ ├── entity/ # 用户实体 │ ├── mapper/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ └── controller/ # 控制器 ├── product-service/ # 商品服务 (端口: 8002) │ ├── pom.xml │ └── src/main/java/com/microservice/product/ │ ├── entity/ # 商品实体 │ ├── mapper/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ └── controller/ # 控制器 ├── order-service/ # 订单服务 (端口: 8003) │ ├── pom.xml │ └── src/main/java/com/microservice/order/ │ ├── entity/ # 订单实体 │ ├── mapper/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ ├── controller/ # 控制器 │ └── feign/ # Feign客户端 ├── gateway/ # 网关服务 (端口: 9000) │ ├── pom.xml │ └── src/main/java/com/microservice/gateway/ ├── sql/ # 数据库脚本 │ └── init.sql └── pom.xml # 父POM文件 ``` ## 技术栈 - Spring Boot 2.6.13 - Spring Cloud 2021.0.5 - Spring Cloud Alibaba 2021.0.5.0 - Nacos (服务注册与配置中心) - Spring Cloud Gateway (网关) - OpenFeign (服务调用) - MyBatis Plus (持久层框架) - MySQL 8.0.31 - Lombok - Hutool - Fastjson ## 启动前准备 ### 1. 安装Nacos 下载并启动Nacos服务: ```bash # Windows startup.cmd -m standalone # Linux/Mac sh startup.sh -m standalone ``` 访问Nacos控制台:http://localhost:8848/nacos 默认账号密码:nacos/nacos ### 2. 初始化数据库 执行 [sql/init.sql](file:///d:/java_study/test/sql/init.sql) 脚本创建数据库和表 ### 3. 修改数据库配置 根据实际情况修改各服务模块的 application.yml 中的数据库配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/microservice?... username: root password: your_password ``` ## 启动服务 ### 方式一:使用Maven命令 在项目根目录执行: ```bash # 编译整个项目 mvn clean install # 启动各个服务 cd user-service mvn spring-boot:run cd ../product-service mvn spring-boot:run cd ../order-service mvn spring-boot:run cd ../gateway mvn spring-boot:run ``` ### 方式二:使用IDE 1. 在IDE中导入Maven项目 2. 依次启动以下服务: - UserServiceApplication (端口: 8001) - ProductServiceApplication (端口: 8002) - OrderServiceApplication (端口: 8003) - GatewayApplication (端口: 9000) ## API接口 ### 通过网关访问 所有接口都通过网关访问,统一前缀为 `/api` #### 用户服务 - GET `/api/user/{id}` - 根据ID查询用户 - GET `/api/user/list` - 查询所有用户 - POST `/api/user` - 创建用户 - PUT `/api/user` - 更新用户 - DELETE `/api/user/{id}` - 删除用户 - GET `/api/user/username/{username}` - 根据用户名查询用户 #### 商品服务 - GET `/api/product/{id}` - 根据ID查询商品 - GET `/api/product/list` - 查询所有商品 - GET `/api/product/category/{category}` - 根据分类查询商品 - POST `/api/product` - 创建商品 - PUT `/api/product` - 更新商品 - DELETE `/api/product/{id}` - 删除商品 - PUT `/api/product/stock/{id}/{quantity}` - 更新库存 #### 订单服务 - GET `/api/order/{id}` - 根据ID查询订单 - GET `/api/order/list` - 查询所有订单 - GET `/api/order/user/{userId}` - 根据用户ID查询订单 - POST `/api/order` - 创建订单 - PUT `/api/order/{id}/status/{status}` - 更新订单状态 ### 直接访问各服务 如果绕过网关直接访问各服务: - 用户服务: http://localhost:8001 - 商品服务: http://localhost:8002 - 订单服务: http://localhost:8003 ## 测试示例 ### 创建订单示例 ```bash curl -X POST http://localhost:9000/api/order \ -H "Content-Type: application/json" \ -d '{ "userId": 1, "productId": 1, "quantity": 2 }' ``` ### 查询用户示例 ```bash curl http://localhost:9000/api/user/1 ``` ### 查询商品示例 ```bash curl http://localhost:9000/api/product/list ``` ## 服务注册与发现 启动所有服务后,在Nacos控制台可以看到所有服务已注册: - user-service - product-service - order-service - gateway ## 注意事项 1. 确保Nacos服务已启动 2. 确保MySQL数据库已启动并初始化 3. 按照依赖顺序启动服务(先启动业务服务,再启动网关) 4. 各服务的端口不要冲突 5. 数据库连接信息根据实际情况修改