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构建工具MavenJDK 版本211.2 脚手架功能统一依赖管理父工程公共代码抽离common 模块服务注册发现Nacos统一请求入口网关业务微服务模板user-service2. 前置环境准备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取消勾选创建自 archetypeJDK选择21点击下一步项目信息名称cloud-demo组 IDcom.example工件 IDcloud-demo点击创建清理工程删除父工程下的src文件夹替换父工程pom.xml全量复制xml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIdcloud-demo/artifactId version1.0-SNAPSHOT/version packagingpom/packaging namecloud-demo/name descriptionSpring Cloud 微服务脚手架/description !-- 统一版本配置 -- properties maven.compiler.source21/maven.compiler.source maven.compiler.target21/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding spring.boot.version3.2.5/spring.boot.version spring.cloud.version2023.0.1/spring.cloud.version spring.cloud.alibaba.version2023.0.1.2/spring.cloud.alibaba.version /properties !-- 依赖版本锁定 -- dependencyManagement dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-dependencies/artifactId version${spring.boot.version}/version typepom/type scopeimport/scope /dependency dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId version${spring.cloud.version}/version typepom/type scopeimport/scope /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-alibaba-dependencies/artifactId version${spring.cloud.alibaba.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement modules /modules /project4.2 第二步创建公共模块common右键父工程cloud-demo→新建→模块配置Maven JDK21 取消模板 → 名称common→ 创建替换common/pom.xmlxml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd parent groupIdcom.example/groupId artifactIdcloud-demo/artifactId version1.0-SNAPSHOT/version /parent modelVersion4.0.0/modelVersion artifactIdcommon/artifactId namecommon/name description公共模块/description dependencies dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter/artifactId /dependency /dependencies /project4.3 第三步创建网关模块gateway右键父工程 →新建→模块→ 名称gateway→ 创建替换gateway/pom.xmlxml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd parent groupIdcom.example/groupId artifactIdcloud-demo/artifactId version1.0-SNAPSHOT/version /parent modelVersion4.0.0/modelVersion artifactIdgateway/artifactId namegateway/name description微服务网关/description dependencies dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-gateway/artifactId /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency dependency groupIdcom.example/groupId artifactIdcommon/artifactId version1.0-SNAPSHOT/version /dependency /dependencies /project创建配置文件gateway/src/main/resources/application.ymlyamlserver: 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.GatewayApplicationjava运行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.xmlxml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd parent groupIdcom.example/groupId artifactIdcloud-demo/artifactId version1.0-SNAPSHOT/version /parent modelVersion4.0.0/modelVersion artifactIduser-service/artifactId nameuser-service/name description用户微服务/description dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency dependency groupIdcom.example/groupId artifactIdcommon/artifactId version1.0-SNAPSHOT/version /dependency /dependencies /project创建配置文件user-service/src/main/resources/application.ymlyamlserver: port: 8081 spring: application: name: user-service cloud: nacos: discovery: server-addr: localhost:8848创建启动类com.example.user.UserServiceApplicationjava运行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.UserControllerjava运行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 中添加yamlspring: cloud: nacos: discovery: namespace: 你的命名空间ID6. 服务启动与功能验证6.1 启动顺序启动已运行的 Nacos 服务启动user-service启动gateway6.2 验证步骤打开 Nacos 控制台http://localhost:8848/nacos账号密码nacos/nacos查看服务列表gateway、user-service已注册浏览器访问网关测试地址http://localhost:8888/user/info预期返回结果用户服务JDK21 Spring Cloud 微服务脚手架搭建成功7. 标准项目结构plaintextcloud-demo父工程 ├── common公共模块 ├── gateway网关服务 ├── user-service业务服务 └── pom.xml父工程配置8. 常见注意事项依赖版本所有子模块继承父工程禁止手动写版本号服务名新项目服务名不要与旧项目重复JDK 版本全程使用 JDK21避免版本不兼容启动顺序必须先启动 Nacos再启动微服务端口占用8848 (Nacos)、8888 (网关)、8081 (用户服务) 无冲突即可9. 总结本脚手架基于IDEA 2025.3.3 中文版 JDK21构建是标准的 Spring Cloud 微服务基础架构父工程统一管理依赖无冲突支持 Nacos 多项目共用零侵入包含网关、公共模块、业务服务可直接扩展业务代码简洁、配置清晰适合作为企业级微服务基础模板

相关新闻

最新新闻

日新闻

周新闻

月新闻