Spring Cloud

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

image

  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>
View Code

   <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 项目,什么都不用改!

image

 

posted @ 2026-03-08 18:37  Buzilv  阅读(2)  评论(0)    收藏  举报