SpringBoot集成Nacos全过程

 更新时间:2024年09月23日 08:49:52   作者:Java王小怪  
Nacos是阿里巴巴开源的项目,主要作为云原生应用的注册中心与配置中心,本文介绍Nacos的使用方法,包括依赖配置、配置文件的设置、启动类注解使用,以及如何实现配置文件的动态刷新,使用Nacos可以有效管理和刷新服务配置,无需重启应用即可更新设置

简介

Nacos 是阿里巴巴的新开源项目,其核心定位是 “一个更易于帮助构建云原生应用的集注册中心与配置中心于一体的管理平台”,又是我们口中所称的配置和注册中心。

上文说到如何安装和启动Nacos,那么现在我们就浅谈下Nacos的使用方法。

依赖

Nacos作为阿里的开源项目,他的依赖也必然带上了阿里,这一点注意别导错依赖了。

我这里使用的是2.2.1RELEASE,在这里值得一提的是,最起码nacos的大版本要和SpringBoot保持一致,注册和配置中心的依赖保持一致!!!!(如果后面出问题了,记得看一下依赖)

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

配置文件

在这里要说一下,配置文件在这里使用的是bootstrap.yml,为系统的配置文件,其优先级大于application.yml。

在这里我们也可以使用bootstrap.properties文件,其效果和yml文件相同。

spring:
  application:
    name: xiaoguai    #为服务名
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        namespace: monitor
        group: monitor
        server-addr: localhost:8848
      config:
        file-extension: yaml #后缀名,只支持 properties 和 yaml 类型
        prefix: xiaoguai #文件名,如果没有配置则默认为 ${spring.appliction.name}
        namespace: monitor
        auto-refresh: true
        enable-remote-sync-config: true #启用远程同步配置,
        timeout: 3000
        group: DEFAULT_GROUP  #配置组
        refresh-enabled: true
        server-addr: localhost:8848

下图为Nacos的对应关系:

在加上阿里的依赖后,启动类上还要添加注解@EnableDiscoveryClient开启配置。

mport org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @Author: xiaoguai
 * @Date: 2022-09/06/14:11
 */
@SpringBootApplication
@EnableDiscoveryClient
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);

    }
}

启动启动类后,访问nacos的地址https:localhost:8848/nacos,打开服务列表,为你的服务,服务名对应

spring.application.name:xiaoguai

代码

要实现配置文件的动态刷新,还需要一个注解@RefreshScope

在需要动态刷新的controller上添加此注解

注意:@Value注解为org.springframework.beans.factory.annotation.Value包下的,不要导成Lombok下的了!!!

@RestController
@RefreshScope
public class HelloController {

   @Autowired
   private MyConfiguration myConfiguration;

   @Value("${log.level}")
   private String level;

    @GetMapping("/info")
    public String getConfigInfo() {
        String all = myConfiguration.getUsername()+"<br>"+myConfiguration.getPassword()+level;
        System.out.println(all);
        return all;
    }
}

测试

在启动之后访问以上内容

控制台和网页分别输出为:

现在我们在不重启应用的情况下,修改Nacos的配置文件。

在上次的网页进行刷新操作,分别观察网页和控制台的输出:

这样就完成了Nacos的动态配置和动态刷新了!!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java的ThreadPoolExecutor业务线程池详细解析

    Java的ThreadPoolExecutor业务线程池详细解析

    这篇文章主要介绍了Java线程池ThreadPoolExecutor详细解析,任务刚开始进来的时候就创建核心线程,核心线程满了会把任务放到阻塞队列,阻塞队列满了之后才会创建空闲线程,达到最大线程数之后,再有任务进来,就只能执行拒绝策略了,需要的朋友可以参考下
    2024-01-01
  • java中雪花算法时钟回拨问题解决

    java中雪花算法时钟回拨问题解决

    本文介绍了分布式系统中使用雪花算法生成唯一ID时可能遇到的时钟回拨问题,以及解决这个问题的几种方法,包括等待机制、扩展位、预留时间戳或逻辑时钟等,感兴趣的可以了解一下
    2024-10-10
  • Java并发编程之CountDownLatch解读

    Java并发编程之CountDownLatch解读

    这篇文章主要介绍了Java并发编程之CountDownLatch解读,是通过一个计数器来实现的,计数器的初始值是线程的数量,countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行,需要的朋友可以参考下
    2023-12-12
  • Java中Maven项目导出jar包配置的示例代码

    Java中Maven项目导出jar包配置的示例代码

    这篇文章主要介绍了Java中Maven项目导出jar包配置的示例代码,需要的朋友可以参考下
    2018-11-11
  • ThreadLocal使用案例_动力节点Java学院整理

    ThreadLocal使用案例_动力节点Java学院整理

    这篇文章主要介绍了ThreadLocal使用案例分析,需要的朋友可以参考下
    2017-08-08
  • java Stream操作转换方法

    java Stream操作转换方法

    文章总结了Java 8中流(Stream) API的多种常用方法,包括创建流、过滤、遍历、分组、排序、去重、查找、匹配、转换、归约、打印日志、最大最小值、统计、连接、函数式接口等,展示了流API在处理集合数据时的强大和灵活性,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • Java用三元运算符判断奇数和偶数的简单实现

    Java用三元运算符判断奇数和偶数的简单实现

    这篇文章主要介绍了Java用三元运算符判断奇数和偶数的简单实现,需要的朋友可以参考下
    2014-02-02
  • java8升级到java17的兼容性分析与迁移指南

    java8升级到java17的兼容性分析与迁移指南

    这篇文章主要为大家详细介绍了从 Java 8 升级到 Java 17 的详细分析和迁移步骤,包括代码修改建议,依赖更新和配置调整,有需要的小伙伴可以参考一下
    2025-04-04
  • 百度Java面试题 前200页精选(下)

    百度Java面试题 前200页精选(下)

    这篇文章主要为大家分享了Java面试资源下篇,百度“Java面试题”前200页都在这里了,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • SpringCloud 中防止绕过网关请求直接访问后端服务的解决方法

    SpringCloud 中防止绕过网关请求直接访问后端服务的解决方法

    这篇文章主要介绍了SpringCloud中如何防止绕过网关请求直接访问后端服务,本文给大家分享三种解决方案,需要的朋友可以参考下
    2023-06-06

最新评论