IDEA 2025.3.3 中文版Spring Cloud 微服务脚手架搭建文档
·
适配环境:JDK 21 + Maven + Spring Boot 3.2.5 + Spring Cloud 2023.0.1文档说明:纯手把手操作指南,无冗余内容,代码可直接复制使用,支持 Nacos 多项目共用
目录
- 文档概述
- 前置环境准备
- 微服务架构设计
- 分步搭建教程(核心)
- Nacos 多项目共用说明
- 服务启动与功能验证
- 标准项目结构
- 常见注意事项
- 总结
1. 文档概述
1.1 技术栈
- 开发工具:IDEA 2025.3.3 中文版
- 基础框架:Spring Boot 3.2.5 + Spring Cloud 2023.0.1
- 服务治理:Nacos 2.4.3(注册 / 配置中心)
- 网关:Spring Cloud Gateway
- 构建工具:Maven
- JDK 版本:21
1.2 脚手架功能
- 统一依赖管理(父工程)
- 公共代码抽离(common 模块)
- 服务注册发现(Nacos)
- 统一请求入口(网关)
- 业务微服务模板(user-service)
2. 前置环境准备
- IDEA 2025.3.3 中文版(已安装)
- JDK 21(已在 IDEA 中完成配置)
- Nacos 2.4.3(已启动,支持多项目共用)
- IDEA 自带 Maven(无需额外安装)
3. 微服务架构设计
表格
| 模块名称 | 模块类型 | 核心作用 |
|---|---|---|
| cloud-demo | 父工程 | 统一管理所有依赖版本,解决依赖冲突 |
| common | 公共子模块 | 存放工具类、实体类、通用依赖 |
| gateway | 网关微服务 | 统一入口、路由转发、服务治理 |
| user-service | 业务微服务 | 业务功能实现(模板服务) |
4. 分步搭建教程(核心)
4.1 第一步:创建 Maven 父工程
- 打开 IDEA → 左上角 文件 → 新建 → 项目
- 配置:
- 左侧选择:Maven
- 取消勾选:
创建自 archetype - JDK:选择 21
- 点击 下一步
- 项目信息:
- 名称:
cloud-demo - 组 ID:
com.example - 工件 ID:
cloud-demo - 点击 创建
- 名称:
- 清理工程:删除父工程下的
src文件夹 - 替换父工程
pom.xml(全量复制):
xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>cloud-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>cloud-demo</name>
<description>Spring Cloud 微服务脚手架</description>
<!-- 统一版本配置 -->
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.boot.version>3.2.5</spring.boot.version>
<spring.cloud.version>2023.0.1</spring.cloud.version>
<spring.cloud.alibaba.version>2023.0.1.2</spring.cloud.alibaba.version>
</properties>
<!-- 依赖版本锁定 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
</modules>
</project>
4.2 第二步:创建公共模块(common)
- 右键父工程
cloud-demo→ 新建 → 模块 - 配置:Maven + JDK21 + 取消模板 → 名称:
common→ 创建 - 替换
common/pom.xml:
xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.example</groupId>
<artifactId>cloud-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>common</artifactId>
<name>common</name>
<description>公共模块</description>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
4.3 第三步:创建网关模块(gateway)
- 右键父工程 → 新建 → 模块 → 名称:
gateway→ 创建 - 替换
gateway/pom.xml:
xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.example</groupId>
<artifactId>cloud-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>gateway</artifactId>
<name>gateway</name>
<description>微服务网关</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
- 创建配置文件:
gateway/src/main/resources/application.yml
yaml
server:
port: 8888
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: localhost:8848
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
- 创建启动类:
com.example.gateway.GatewayApplication
java
运行
package com.example.gateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
4.4 第四步:创建业务微服务(user-service)
- 右键父工程 → 新建 → 模块 → 名称:
user-service→ 创建 - 替换
user-service/pom.xml:
xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.example</groupId>
<artifactId>cloud-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>user-service</artifactId>
<name>user-service</name>
<description>用户微服务</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
- 创建配置文件:
user-service/src/main/resources/application.yml
yaml
server:
port: 8081
spring:
application:
name: user-service
cloud:
nacos:
discovery:
server-addr: localhost:8848
- 创建启动类:
com.example.user.UserServiceApplication
java
运行
package com.example.user;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
- 创建测试接口:
com.example.user.controller.UserController
java
运行
package com.example.user.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/info")
public String getUserInfo() {
return "用户服务:JDK21 + Spring Cloud 微服务脚手架搭建成功!";
}
}
5. Nacos 多项目共用说明
5.1 核心结论
✅ 无任何影响,Nacos 支持多项目同时使用,服务自动隔离
5.2 隔离规则
- 依靠 服务名(spring.application.name) 区分不同项目服务
- 无需修改现有项目配置,直接启动新脚手架即可
5.3 进阶隔离(可选)
如需物理隔离,在 Nacos 新建命名空间,在微服务 yml 中添加:
yaml
spring:
cloud:
nacos:
discovery:
namespace: 你的命名空间ID
6. 服务启动与功能验证
6.1 启动顺序
- 启动已运行的 Nacos 服务
- 启动
user-service - 启动
gateway
6.2 验证步骤
- 打开 Nacos 控制台:http://localhost:8848/nacos账号密码:nacos/nacos
- 查看服务列表:
gateway、user-service已注册 - 浏览器访问网关测试地址:http://localhost:8888/user/info
- 预期返回结果:
用户服务:JDK21 + Spring Cloud 微服务脚手架搭建成功!
7. 标准项目结构
plaintext
cloud-demo(父工程)
├── common(公共模块)
├── gateway(网关服务)
├── user-service(业务服务)
└── pom.xml(父工程配置)
8. 常见注意事项
- 依赖版本:所有子模块继承父工程,禁止手动写版本号
- 服务名:新项目服务名不要与旧项目重复
- JDK 版本:全程使用 JDK21,避免版本不兼容
- 启动顺序:必须先启动 Nacos,再启动微服务
- 端口占用:8848 (Nacos)、8888 (网关)、8081 (用户服务) 无冲突即可
9. 总结
本脚手架基于 IDEA 2025.3.3 中文版 + JDK21 构建,是标准的 Spring Cloud 微服务基础架构:
- 父工程统一管理依赖,无冲突
- 支持 Nacos 多项目共用,零侵入
- 包含网关、公共模块、业务服务,可直接扩展业务
- 代码简洁、配置清晰,适合作为企业级微服务基础模板
更多推荐




所有评论(0)