【集成-Nacos】SpringBoot集成Nacos

注意:以下主要演示动态配置

Nacos 是什么?

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

什么是动态配置?

举个例子,比如application.yml 中写的配置需要修改,那么我们一般会修改代码,然后打包镜像部署服务。我们有没有一种方案,直接在程序运行时修改配置呢?有,那就是动态配置。

springboot集成Nacos

  1. 依赖

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

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.1</version>
        </dependency>

  1. 配置Nacos地址 application.yaml
spring:
  application:
    name: nacos-config-client

nacos:
  discovery:
    server-addr: localhost:8848 
  config:
    server-addr: localhost:8848 
    file-extension: yaml 
  1. 启动类添加注解

image

@SpringBootApplication
@NacosPropertySource(dataId = "Test", autoRefreshed = true)
public class NacosConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApplication.class, args);
    }
}
  1. 程序中使用
@RestController
@RequestMapping("config")
public class ConfigController {

    @NacosValue(value = "${userName:zhang}", autoRefreshed = true)
    private String userName;

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    @ResponseBody
    public String get() {
        return userName;
    }
}
  1. 测试
    image
    image

总结

动态配置的原理,等我看看源码。
https://blog.csdn.net/wangliangluang/article/details/127040023

posted @ 2023-03-09 01:21  帅气的涛啊  阅读(129)  评论(0编辑  收藏  举报