一、需求

主要实现 nacos 作为配置中心的一些使用方法。

二、实现功能

1、加载 product-provider-dev.yaml 配置文件

2、实现配置的自动刷新

3、实现加载多个配置文件

4、配置文件的优先级

三、注意事项

1、和 nacos config 配置相关的代码都需要定义在 bootstrap.yml配置文件中

spring.application.name
spring.profiles.active
spring.cloud.nacos.config.xxx

2、测试的过程中,发现如果定时任务的类上增加类 @RefreshScope 注解,那么 nacos 中的配置属性动态修改后,这个定时任务会失效。(参考代码:com.huan.study.product.RefreshScopeScheduledTask)
3、如果在一个线程中,隔固定周期打印@Value注解中的值,在nacos修改值后,不会改变(参考代码com.huan.study.product.PrintPropertiesTask#initPrint
4、最好不要出现配置文件中存在优先级。

四、功能实现

1、加载 单个 配置文件

1、data id 的定义:

${prefix}-${spring.profile.active}.${file-extension}

prefix:默认情况下为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置

spring.profile.active:这个值 需要在 bootstrap.yml配置文件中定义,或通过命令行参数传递,可以为空,此时配置退化为 ${prefix}.${file-extension}

file-extension:指定配置文件的后缀,默认为properties,可以指定为yaml

2、和 nacos 相关的配置放置的位置

需要放在 bootstrap.yml 配置文件中。

2、实现配置的自动刷新

1、基于 ConfigurationProperties 配置的属性,可以自动刷新配置。
2、基于 @Value 注解配置的属性,需要在类上增加 @RefreshScope 注解
3、基于 @ConditionalOnProperty 这类注解,配置的属性如果放在 nacos中配置,第一次程序启动的时候生效,后期在nacos中修改不生效
注意:
    测试的过程中,发现
1、如果定时任务的类上增加类 @RefreshScope 注解,那么 nacos 中的配置属性动态修改后,这个定时任务会失效。
2、如果在一个线程中,隔固定周期打印@Value注解中的值,在nacos修改值后,不会改变

3、实现加载多个配置文件

可以实现同一个项目中存在多个配置文件,或多个项目共享同一个配置文件

4、配置文件的优先级


spring.cloud.nacos.config.extension-configs[n].data-id中的 n 的值越大,优先级越高。

五、代码路径

https://gitee.com/huan1993/spring-cloud-alibaba-parent/tree/master/nacos-config

六、参考链接

https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
配置属性无法刷新

Spring Cloud Alibaba Nacos Config 的使用的更多相关文章

  1. Spring Cloud Alibaba Nacos Config 实战

    Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spring Cloud Alibaba Nacos Config,您可 ...

  2. Spring Cloud Alibaba Nacos

    1. Spring Cloud Alibaba 介绍 Spring Cloud Alibaba 为分布式应用程序开发提供了一站式解决方案.它包含了开发分布式应用程序所需的所有组件,使得你可以轻松地使用 ...

  3. Spring Cloud Alibaba | Nacos配置管理

    目录 Spring Cloud Alibaba | Nacos配置管理 1. pom.xml 项目依赖 2. 在 bootstrap.properties 中配置 Nacos server 的地址和应 ...

  4. Spring Cloud Alibaba | Nacos集群部署

    目录 Spring Cloud Alibaba | Nacos集群部署 1. Nacos支持三种部署模式 2. 集群模式下部署Nacos 2.1 架构图 2.2 下载源码或者安装包 2.3 配置集群配 ...

  5. 0.9.0.RELEASE版本的spring cloud alibaba nacos实例

    简而言之,nacos与eureka的不同之处有三:后台老板.部署方式.功能.nacos是阿里的,eureka是奈飞的:nacos有自己的安装包,需要独立部署,eureka仅作为一个服务组件,引入jar ...

  6. Spring Cloud Alibaba+Nacos搭建微服务架构

    1. Spring Cloud Alibaba 简介    Spring Cloud Alibaba是阿里巴巴为分布式应用提供的一站式解决方案,能够更方便快捷地搭建分布式平台,nacos拥有着替换eu ...

  7. Spring Cloud Alibaba | Nacos服务中心初探

    目录 Spring Cloud Alibaba | Nacos服务中心初探 1. 什么是Nacos? 1.1 Nacos 1.0 1.2 Nacos 2.0 2. Nacos 架构及概念 2.1 服务 ...

  8. Spring Cloud Alibaba | Nacos服务注册与发现

    目录 Spring Cloud Alibaba | Nacos服务注册与发现 1. 服务提供者 1.1 pom.xml项目依赖 1.2 配置文件application.yml 1.3 启动类Produ ...

  9. 0.9.0.RELEASE版本的spring cloud alibaba nacos+feign实例

    这里的feign依然是原来的feign,只不过将注册中心由eureka换成了nacos.服务提供方参见0.9.0.RELEASE版本的spring cloud alibaba nacos实例,消费方跟 ...

随机推荐

  1. matlab纹理映射之地球

    %地球 cla reset; load topo; [x,y,z] = sphere(45); s = surface(x,y,z,'facecolor','texturemap','cdata',t ...

  2. PPPoE技术白皮书(H3C)

    PPPoE技术白皮书 关键词:PPP,Ethernet,PPPoE 摘要:PPPoE是一种通过一个远端接入设备为以太网上的主机提供接入服务,并可以对接入的每个主机实现控制和计费的技术.本文介绍了PPP ...

  3. C#中的文本到语音

    本演示说明了如何使用c#.net Windows Forms应用程序中的system.speech库将文本转换为语音.Microsoft .NET框架提供System.Speech.Synthesis ...

  4. Jetpack Compose学习(4)——Image(图片)使用及Coil图片异步加载库使用

    原文地址 Jetpack Compose学习(4)--Image(图片)使用及Coil图片异步加载库使用 | Stars-One的杂货小窝 本篇讲解下关于Image的使用及使用Coil开源库异步加载网 ...

  5. 如何在云效流水线 Flow中构建属于自己的NPM仓库

    如何在云效流水线 Flow中构建属于自己的NPM仓库,Flow 通过各种构建组件,对各种语言提供了制品打包能力,让用户可以快速的使用流水线构建制品,并通过后续的部署任务进行部署.Flow 已经完成了与 ...

  6. 《挑战程序设计竞赛》——DFS

    DFS(深度优先搜索) 简介 深度优先搜索(DFS,Depth-First Search)是搜索的手段之一.它从某个状态开始,不断的转移状态直到无法转移.然后退回到前一步的状态,继续转移到其他状态,如 ...

  7. hadoop集群搭建详细教程

    本文针对hadoop集群的搭建过程给予一个详细的介绍. 参考视频教程:https://www.bilibili.com/video/BV1tz4y127hX?p=1&share_medium= ...

  8. mysql事务干货详解

    说明: mysql是现在行业中流行的关系型数据库,它的核心是存储引擎.mysql的存储引擎有很多种我们可以通过命令查看如下 SHOW ENGINES 不同版本得到的数据不一样,我们今天说的事务是在 M ...

  9. 记一次PHP的Invalid binding type问题

    首先说明下环境问题,新旧服务器的迁移.代码在老服务器运行没有任何问题.环境都是PHP7.3,结果新的服务器上流量导过来以后,就报出了如下问题: FastCGI sent in stderr: &quo ...

  10. mysql允许别人通过ip访问本机mysql数据

    要想允许别人通过ip访问本机mysql数据库,首先要是本机的mysql允许别的ip访问,也就是授权:其次别人的代码里,要写对本机的ip. 一.本机mysql的授权操作 1.cmd 进入控制台 2.输入 ...