【Spring Cloud Alibaba】Nacos config的使用和高阶用法

这篇具有很好参考价值的文章主要介绍了【Spring Cloud Alibaba】Nacos config的使用和高阶用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。
Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客户端和服务器上的概念与 Spring Environment 和 PropertySource 有着一致的抽象,在特殊的 bootstrap 阶段,配置被加载到 Spring 环境中。当应用程序从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。
引用:
https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config

文中对应的代码可查看
https://gitee.com/WangFuGui-Ma/spring-cloud-alibaba/tree/master/nacos/config

🐍第一步,创建配置文件到nacos中

在nacos的配置管理页面创建如下图所示的配置

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐍第二步,在项目中配置nacos的地址和指定文件

必须使用 bootstrap.properties 配置文件来配置Nacos Server 地址

spring.application.name 和 nacos中的dataid相对应

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

spring.cloud.nacos.config.server-addr填写自己本机的nacos地址

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐍第三步,读取配置文件

@SpringBootApplication
public class NacosConfigApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(NacosConfigApplication.class, args);
        String useLocalCache = applicationContext.getEnvironment().getProperty("useLocalCache");
        System.err.println("useLocalCache :"+useLocalCache);
    }
}

在我们的springboot启动内中读取我们的配置文件

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

启动,就可以读取到了

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐦高阶用法

🐦高阶用法一:使用yaml文件

🐦第一步,nacos创建nacos-config.yml文件,配置如下【Spring Cloud Alibaba】Nacos config的使用和高阶用法
🐦第二步,修改项目配置文件如下

【Spring Cloud Alibaba】Nacos config的使用和高阶用法
bootstrap.yml

spring:
  application:
    name: nacos-config # appName 会自动读取nacos中dataid为nacos-config.yml的文件
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml

file-extension:文件名的后缀

🐦第三步,读取

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐼高阶用法二:使用业务类读取配置

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${useLocalCache:false}")
    private boolean useLocalCache;

    /**
     * http://localhost:8080/config/get
     */
    @RequestMapping("/get")
    public boolean get() {
        return useLocalCache;
    }
}

【Spring Cloud Alibaba】Nacos config的使用和高阶用法
postman测试

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐘高阶用法三:动态刷新配置

修改nacos配置

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

启动类修改为

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

import java.util.concurrent.TimeUnit;

/**
 * Document: https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
 */
@SpringBootApplication
public class NacosConfigApplication {

    public static void main(String[] args) throws InterruptedException {

        ConfigurableApplicationContext applicationContext = SpringApplication.run(NacosConfigApplication.class, args);
        while(true) {
            String useLocalCache = applicationContext.getEnvironment().getProperty("useLocalCache");
            System.err.println("useLocalCache :" + useLocalCache);
            TimeUnit.SECONDS.sleep(1);
        }
    }
}

修改之后成功获取

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

业务类上面可以加注解@RefreshScope开启刷新配置

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐑高阶用法四:使用相同的配置文件

使用情况:很多系统共用一个配置文件

🐑第一步:替换jar包
 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>

替换为

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

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐑第二步:nacos创建common.yml文件

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐑第三步,项目配置文件配置
spring:
  application:
    name: nacos-config # appName 会自动读取nacos中dataid为nacos-config.yml的文件
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml #文件后缀名
        shared-configs:
          - common.${spring.cloud.nacos.config.file-extension}

shared-configs:共用的文件

🐑第四步,启动类读取配置
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

import java.util.concurrent.TimeUnit;

/**
 * Document: https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
 */
@SpringBootApplication
public class NacosConfigApplication {

    public static void main(String[] args) throws InterruptedException {

        ConfigurableApplicationContext applicationContext = SpringApplication.run(NacosConfigApplication.class, args);
        while(true) {
            String useLocalCache = applicationContext.getEnvironment().getProperty("useLocalCache");
            String common = applicationContext.getEnvironment().getProperty("common");
            System.err.println("useLocalCache :" + useLocalCache);
            System.err.println("common :" + common);
            TimeUnit.SECONDS.sleep(1);
        }
    }
}

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐫高阶用法五: 自定义命名空间(namespace)

nacos默认读取的是public

【Spring Cloud Alibaba】Nacos config的使用和高阶用法
我们要用到test环境

🐫第一步,创建test命名空间

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

复制命名空间id 4c9c23a2-0300-4c72-b07f-7846bd03e153

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐫第二步,命名空间里面新建配置文件

【Spring Cloud Alibaba】Nacos config的使用和高阶用法
【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐫第三步,项目配置命名空间
spring:
  application:
    name: nacos-config # appName 会自动读取nacos中dataid为nacos-config.yml的文件
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml #文件后缀名
        shared-configs:
          - common.${spring.cloud.nacos.config.file-extension}
        namespace: 4c9c23a2-0300-4c72-b07f-7846bd03e153

namespace: 命名空间id

这样读到的就是test空间下的配置了

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐎高阶用法六:灵活配置环境

🐎第一步,nacos隔离环境

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐎第二步,pom文件配置环境

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

  <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
                <serverAddr>127.0.0.1:8848</serverAddr>
                <namespace>563742f8-6f8b-4b97-8a1f-2f6cf6beb5fa</namespace>
            </properties>
            <activation>
                <!-- 默认环境 -->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
                <serverAddr>127.0.0.1:8848</serverAddr>
                <namespace>4c9c23a2-0300-4c72-b07f-7846bd03e153</namespace>
            </properties>
        </profile>
    </profiles>

配置好了要刷新maven

好了之后会有两个配置文件选项

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

🐎第三步,修改yml文件
spring:
  profiles:
    active: @profileActive@
  application:
    name: nacos-config # appName 会自动读取nacos中dataid为nacos-config.yml的文件
  cloud:
    nacos:
      config:
        server-addr: @serverAddr@
        file-extension: yml #文件后缀名
        shared-configs:
          - common.${spring.cloud.nacos.config.file-extension}
        namespace: @namespace@

但是这个时候启动不了的,因为原生的yml不支持@符号

🐎第四步,修改pom文件使其支持@符号

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

 <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
        </dependency>
  <build>
        <!--build节点增加内容-->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!--开启过滤,用指定的参数替换directory下的文件中的参数-->
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

配置好了之后就可以启动

切换环境在maven右侧切换即可

【Spring Cloud Alibaba】Nacos config的使用和高阶用法

总的来说,Spring Cloud Alibaba Nacos Config是一种用于管理分布式系统配置的工具,它提供了服务器端和客户端的支持,允许用户在Nacos服务器上集中管理Spring Cloud应用程序的外部配置。Spring Cloud Alibaba Nacos Config提供了Config Server和Client的替代方案,客户端和服务器上的概念与Spring Environment和PropertySource有着一致的抽象,在特殊的bootstrap阶段,配置被加载到Spring环境中。在应用程序从开发到测试再到生产的不同环境中,用户可以通过Nacos集中管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。

使用Spring Cloud Alibaba Nacos Config的主要步骤包括:

  • 在Nacos配置管理页面上创建配置文件。

  • 在项目中配置Nacos地址和指定文件,这必须使用bootstrap.properties配置文件来配置Nacos Server地址。

  • 在应用程序启动时读取配置文件。在SpringBoot启动内中读取配置文件,可以使用SpringApplication类的run()方法,然后在ConfigurableApplicationContext上调用getEnvironment().getProperty()方法读取配置属性。

在高阶用法方面,可以使用YAML文件和业务类读取配置。使用YAML文件时,需要在Nacos服务器上创建nacos-config.yml文件,并将配置文件后缀设置为yml。然后,可以使用bootstrap.yml配置文件来指定Nacos服务器地址和文件扩展名。在使用业务类读取配置时,需要使用@Value注解将属性注入到控制器中,并使用@RefreshScope注解使该控制器成为可刷新的bean。这使得在应用程序运行时,可以通过HTTP接口刷新该控制器并重新读取配置。

综上所述,Spring Cloud Alibaba Nacos Config为分布式系统中的外部化配置提供了可靠的解决方案,同时也提供了很多的高级用法,用户可以根据需要自由使用。

仓库地址
https://gitee.com/WangFuGui-Ma/spring-cloud-alibaba/tree/master/nacos/config文章来源地址https://www.toymoban.com/news/detail-457235.html

到了这里,关于【Spring Cloud Alibaba】Nacos config的使用和高阶用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Alibaba Nacos 构建配置中心

    登录 Nacos 面板,依次点击左侧菜单栏【命名空间→新建命名空间】、填写命名空间名和描述信息,点击【确定】: 依次点击左侧菜单栏【配置管理→配置列表】、切换到指定命名空间【此处为 shop】、点击右侧【+】号: 添加配置 填写【Data ID】要求组内唯一,【Group】组名,

    2024年02月08日
    浏览(55)
  • Spring Cloud Alibaba - 服务注册与发现(Nacos)

    ✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:微服务 🥭本文内容:Spring Cloud Alibaba - 服务注册与发现(Nacos)。 在微服务架构中,服务注册与发现是其中的重要一环。服务

    2024年02月07日
    浏览(80)
  • Spring Cloud Alibaba--Nacos服务注册和配置中心

    Nacos 是Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos的特性,官网解释如下: 服务发现和服务健康监测 Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Age

    2024年02月05日
    浏览(55)
  • 【微服务 Spring Cloud Alibaba】- Nacos 服务注册中心

    目录 1. 什么是注册中心? 1.2 注册中心的作用 2. SpringBoot 整合 Nacos 实现服务注册中心 2.1 将服务注册到 Nacos 2.2 实现消费者 3. 服务列表各个参数的含义、作用以及应用场景 注册中心是微服务架构中的一个重要组件,它用于实现 服务注册 与 服务发现 。 【思考一】什么叫服务

    2024年02月06日
    浏览(74)
  • Spring Cloud Alibaba Nacos(服务注册及配置中心)

    Nacos是由阿里巴巴提供的一款专门构建云本地应用的 动态服务发现、配置中心和服务管理平台 。 在Spring Cloud Alibaba中常使用Nacos作为注册中心和分布式配置中心。  (1)服务发现和管理 动态服务发现是以服务为中心(例如微服务或云原生)体系结构的关键。Nacos支持基于DN

    2024年02月16日
    浏览(61)
  • 【Spring Cloud Alibaba】2.服务注册与发现(Nacos安装)

    我们要搭建一个 Spring Cloud Alibaba 项目就绕不开 Nacos ,阿里巴巴提供的 Nacos 组件,可以提供服务注册与发现和分布式配置服务,拥有着淘宝双十一十几年的流量经验,还是非常的可靠的。 Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环

    2024年01月23日
    浏览(56)
  • Spring Cloud Alibaba 2021.0.1.0之Nacos升级

    1 背景 本次隆重发布的 Spring Cloud Alibaba 2021.0.1.0 版本在 Spring Cloud 2021.0.1、Spring Boot 2.6.3 的基础上对其中包括注册配置中心、分布式消息等在内的众多组件进行重大升级: Nacos :升级 Nacos 客户端到 1.4.2 版本,修复了 Nacos 1.4.1 所存在的相关问题,支持了 Nacos 服务发现失败容错

    2024年02月08日
    浏览(38)
  • 云原生微服务实战 Spring Cloud Alibaba 之 Nacos

    第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Spring Cloud Netflix 之 Hystrix 第九章 代码管理gitlab 使用 第十章 Spr

    2024年02月08日
    浏览(51)
  • 解决 Spring Cloud 2021.0.5 版本,使用 nacos 做配置中心,报 No spring.config.import property has been defined 的问题

    报错信息如下 Description: No spring.config.import property has been defined Spring 官方给出的解决方案如下 Add a spring.config.import=nacos: property to your configuration. If configuration is not required add spring.config.import=optional:nacos: instead. To disable this check, set spring.cloud.nacos.config.import-check.enabled=false. 这里只

    2024年02月11日
    浏览(58)
  • Spring Cloud Config、Apollo、Nacos和Archaius对比

    一、适应场景 Spring Cloud Config、Apollo、Nacos、Archaius这四个配置中心在功能和使用场景上有所差异。 1、Spring Cloud Config Spring Cloud Config是Spring Cloud官方提供的分布式系统的外部配置中心。它提供了服务器和客户端支持,可以集中管理不同环境、不同集群的配置,并且支持动态刷

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包