springboot整合nacos(2.x版本)

本文介绍了如何在SpringBoot项目中集成Nacos作为统一配置中心,包括导入依赖、配置namespace、添加配置文件并实现热更新功能。通过@Value和@RefreshScope注解展示如何动态获取和更新配置值。

目录

准备工作

nacos作为统一配置中心

导入nacos配置依赖

nacos配置

添加namespace

添加配置

springboot配置文件

在resources目录下添加bootstrap.yml文件

测试

热更新

结束语


准备工作

我们先创建一个好springboot项目,并且搭建好nacos环境。

nacos作为统一配置中心

导入nacos配置依赖

注意springboot版本和nacos版本要进行对应,否则会启动会报错。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.lyy</groupId>
    <artifactId>demo3</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>demo3</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

nacos配置

添加namespace

添加配置

 选择刚刚创建的命名空间中创建配置

springboot配置文件

在resources目录下添加bootstrap.yml文件
spring:
  application:
    name: demo3

    # nacos相关配置
    cloud:
      nacos:
        config:
          # nacos服务器地址
          server-addr: 127.0.0.1:8848
          # 配置所属命名空间的id
          namespace: 3c0bd764-ae43-4130-938b-d1e5ed3c300f
          # 配置所属分组
          group: DEFAULT_GROUP
          # 配置文件类型,默认是properties
          file-extension: yaml
          # nacos用户名
          username: nacos
          # nacos密码
          password: nacos
测试

使用@Value注解来获取我们在nacos中定义的属性

成功获取到了定义的值。别急,我们这才是完成了第一步,接下来我们nacos中修改一下属性值,再次使用接口再次调用的时候,发现获取的还是原先定义的属性值,不是说nacos可以自动更新nacos中的值么?带着这个疑惑我们接下来来解决这个问题,自动更新修改的属性值。

热更新

第一步,在bootstrap.yml中添加spring.cloud.nacos.config.refresh-enabled: true

第二步,添加@RefreshScope注解

 现在我们再测试一下,修改nacos中的属性值,使用接口调用后,是不是发现获取的值就是我们设置的最新的值了。

结束语

nacos作为统一配置中心,已经集成到springboot中了,后面再将其当作注册中心。springboot整合nacos作为注册中心_bailegebai的博客-优快云博客

Spring Boot 整合 Nacos 服务注册不上时,可从以下几个方面排查并解决问题: ### 配置方面 - **检查 Nacos 服务端地址**:确保 `spring.cloud.nacos.discovery.server-addr` 配置正确,比如当前 Spring Boot 版本2.4.2 时,配置示例如下: ```properties spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 ``` 如果地址配置错误,服务将无法连接到 Nacos 服务器进行注册,所以要仔细核对地址和端口是否准确无误 [^2]。 - **版本匹配问题**:要保证 Nacos 依赖版本Spring Boot 版本相互兼容。例如,版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本,若选用 0.2.x 最好大于 0.2.2 以上。以下是一个版本配置示例: ```xml <properties> <!-- 版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本 --> <!-- nacos.config,nacos.discovery 如果要选用0.2.x最好大于0.2.2以上--> <nacos.config.version>0.2.7</nacos.config.version> <nacos.discovery.version>0.2.7</nacos.discovery.version> <springboot.version>2.3.2.RELEASE</springboot.version> </properties> ``` 不匹配的版本可能会导致服务注册出现问题,所以要根据自己的 Spring Boot 版本选择合适的 Nacos 依赖版本 [^3]。 ### 依赖方面 - **检查依赖是否添加**:确认项目中已经正确添加了 Nacos 配置中心和注册中心的依赖。示例如下: ```xml <!-- nacos-config配置中心依赖 --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>${nacos.config.version}</version> </dependency> <!-- nacos-discovery注册中心依赖 --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-discovery-spring-boot-starter</artifactId> <version>${nacos.discovery.version}</version> </dependency> ``` 缺少必要的依赖会使服务无法与 Nacos 进行交互,从而无法完成注册 [^3]。 ### 代码方面 - **检查启动类注解**:确保 Spring Boot 启动类添加了 `@EnableDiscoveryClient` 注解,示例如下: ```java package com; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class NacostestApplication { public static void main(String[] args) { SpringApplication.run(NacostestApplication.class, args); System.out.println("--------启动成功--------------"); } } ``` 该注解用于启用服务发现功能,如果缺少此注解,服务将不会尝试向 Nacos 注册 [^2]。 ### 其他方面 - **Nacos 服务端状态**:要保证 Nacos 服务端正常运行,可通过访问 Nacos 控制台(如 `http://127.0.0.1:8848/nacos`)来确认。若 Nacos 服务端未启动或出现异常,服务自然无法注册。 - **网络问题**:检查 Spring Boot 应用所在的服务器与 Nacos 服务端之间的网络是否连通,可使用 `ping` 和 `telnet` 命令进行测试。如果网络不通,服务无法与 Nacos 服务端进行通信,也就无法完成注册。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值