一、需求

主要实现 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. linux主机安全加固-个人经验

    说明:我并没有一个系统的网络安全知识体系,随笔里面提到的内容是个人在从事运维行业这几年中总结出来的一点经验,仅供大家参考. 说到linux主机安全加固,我可以想到的就是三个方向吧,基线整改.访问控制和 ...

  2. go build 与go install

    相同点都能生成可执行文件 不同点go build 不能生成包文件, go install 可以生成包文件go build 生成可执行文件在当前目录下, go install 生成可执行文件在bin目录 ...

  3. zip命令常用选项

    大家都知道,在linux上一切皆文件,在实际生产环境中,如果我们需要部署一些系统的服务,我们会将一些软件包提前下载下来统一放到一个文件夹中, 然后将部署的过程用shell或者python写成一个脚本, ...

  4. Java基础(六)——集合

    一.概述 1.介绍 为什么出现集合? 答:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,对对象进行存储,集合就是存储对象最常用的一种方式. 数组和集合类同是容器,有何不同? ...

  5. 鸿蒙内核源码分析(进程回收篇) | 老父亲如何向老祖宗临终托孤 ? | 百篇博客分析OpenHarmony源码 | v47.01

    百篇博客系列篇.本篇为: v47.xx 鸿蒙内核源码分析(进程回收篇) | 临终前如何向老祖宗托孤 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管 ...

  6. [模板]多项式全家桶小记(求逆,开根,ln,exp)

    前言 这里的全家桶目前只包括了\(ln,exp,sqrt\).还有一些类似于带余数模,快速幂之类用的比较少的有时间再更,\(NTT\)这种前置知识这里不多说. 还有一些基本的导数和微积分内容要了解,建 ...

  7. P1712-[NOI2016]区间【线段树,尺取法】

    正题 题目链接:https://www.luogu.com.cn/problem/P1712 题目大意 \(n\)个区间,求出其中\(m\)个区间使得它们有覆盖同一个点且最长区间长度减去最短长度最小. ...

  8. PYTHON django 关于时间转换

    在安装django.默认会pytz时区库,import pytzpytz.timezone("UTC")now.astimezone("要转换的aware类型" ...

  9. Python下载课件

    from urllib.request import urlretrieve # #下载网络文件到本地 import os os.chdir("C:/Users/RankFan/Deskto ...

  10. 解决连接云服务器的redis失败

    在本地连接服务器redis的时候,发现连接失败,这是因为服务器上的redis开启保护模式运行,该模式下是无法进行远程连接的.只需要修改redis目录下的redis.conf文件,找到 protecte ...