Spring Cloud
1. 确定项目工程结构(例):

1. cloud-demo 文件:该文件用于锁定 springboot、springcloud、springcloud alibaba 的依赖版本。因此,只需一个 pom.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://mave n.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.atguigu</groupId> <artifactId>spring-cloud-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-cloud.version>2023.0.3</spring-cloud.version> <spring-cloud-alibaba.version>2023.0.3.2</spring-cloud-alibaba.ver sion> </properties> <dependencyManagement> <dependencies> <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>
<packaging>pom</packaging> :表示 该项目的打包方式是 pom 类型,这个项目不会生成可运行的 jar 或 war,而是作为一个“父项目 / 聚合项目”来管理其他模块。
2. services 文件:用于存放微服务应用所需要的公共依赖。因此,它也只需保留一个 pom.xml 文件。同时 pom.xml 文件中也需要添加 <packaging>pom</packaging> 用于标识该项目也是作为一个“父项目 / 聚合项目”来管理其他模块。
2 .Nacos 是什么?它的功能是什么?怎么跟项目代码联系起来的?★★★
Nacos :本质上是一个可独立运行的 Java 服务端应用程序。
Nacos 的安装:见官网。
(功能一)服务注册与发现 :所有微服务一启动,就自动“报到”到 Nacos。以后互相调用不用写死 IP,直接写服务名字就行! 它还自带负载均衡(人多的时候自动挑最闲的那个),服务挂了它还能自动踢出去。
(功能二)配置中心 :以前每个服务自己带一堆 yml 文件,改个端口得把所有服务都重启,累死。 现在把所有配置全扔到 Nacos 里,就像把钥匙全放一个智能保险箱。 你在网页上改个配置(比如改数据库密码、开关某个功能),所有在线的服务瞬间自动更新,不用重启! 还能版本回滚、灰度发布(只让部分用户先看到新配置),爽爆。
想象一下:你的每个微服务就像一个小机器人。 Nacos 就是给每个机器人装了两个超级简单的“自动模块”,一装上,它自己就会去小区公告栏(Nacos服务器)报到和拿东西,完全不用你手写代码去连!
第1步:给项目装两个“插件”(加依赖),打开你的 pom.xml,复制粘贴这俩东西(就像给机器人装两个小翅膀):
<!-- 1. 自动报到插件(服务发现) --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- 2. 自动拿配置插件(配置中心) --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
注意:这里面的两个 <dependency> 故意没写版本号 <version> ,这是 Spring Cloud 家族的“规矩”——让一个叫 BOM(版本大管家) 的东西来统一管版本。
Maven 一看“哎?这俩东西用哪个版本啊?”,就直接报错说“缺少版本管理配置”。解决办法就一句话:给 Maven 配个大管家!
第一步:打开你的 pom.xml 文件,找到 <properties> 标签。(如果没有就自己在 <project> 里面新建一个):
<properties> <spring-cloud.version>2025.1.1</spring-cloud.version> <spring-cloud-alibaba.version>2025.1.0.0</spring-cloud-alibaba.version> </properties>
第二步:在 <dependencies> 标签的正上方(超级重要!不能放里面),粘贴下面这段“大管家”:
<dependencyManagement>
<dependencies>
<!-- Spring Cloud 大管家(支持 Spring Boot 4.0.x) -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring Cloud Alibaba 大管家(专治 Nacos,2025.1.0.0 完美适配 4.0.3) -->
<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>
第三步:你的两个 Nacos 依赖保持原样(不要加 version!)
<!-- 1. 服务发现(自动报到) --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- 2. 配置中心(自动拿配置) --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
第2步:告诉机器人“Nacos 家在哪”(写配置),只用一个 application.yml 就够了,超级干净!
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848 # ← 这里填你 Nacos 的地址(本地就是这个)
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yaml # 你的配置文件后缀
就像在机器人脑袋上贴了个纸条:“去 127.0.0.1:8848 找老大”。
第3步:启动机器人,魔法自动发生!直接 run 你的 Spring Boot 项目,什么都不用改!


浙公网安备 33010602011771号