SpringCloud Alibaba - Nacos 作为配置中心 读取Yaml配置信息
通过本系列的前篇文章:
- 《SpringCloud Alibaba - Nacos 作为配置中心 & 读取Properties配置信息》
在之前文章中我们学习到了SpringCloud Alibaba
读取Nacos Config
内定义的properties
类型的配置文件信息,并且使用Nacos Console
进行修改配置信息后可以在应用程序内实时更新。
本章目标
Nacos Config
所支持的配置文件类型既然有多种,那我们该怎么配置才能读取不同的配置类型的内容呢?
快速入门
我们还是先来通过Nacos Console
来添加本章所使用的配置信息,要注意配置的后缀名改为yaml
。
Nacos Server
需要在本地安装Nacos Server
才能完成本章的内容讲解,具体的安装步骤访问Nacos 官方文档
创建配置
配置信息如下所示:
创建应用
我们在Nacos Console
已经添加了本章所使用的Yaml
类型的配置信息,下面通过Idea
开发工具创建一个SpringBoot
项目,并添加SpringCloud Alibaba
、SpringCloud
版本的依赖,pom.xml
配置文件内容如下所示:
//...
<properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.RELEASE</spring-cloud.version><spring-cloud-alibaba.version>0.2.1.RELEASE</spring-cloud-alibaba.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--alibaba nacos config--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency></dependencies><dependencyManagement><dependencies><!--SpringCloud--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!--SpringCloud Alibaba--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
//...
配置文件扩展名
在之前讲到过默认的配置文件扩展名为properties
,既然我们本章是读取的yaml
类型的文件,那肯定需要修改这个配置参数,application.yml
配置文件如下所示:
spring:application:name: hengboy-spring-cloud# nacos configcloud:nacos:config:server-addr: 127.0.0.1:8848# 配置文件后缀名为yamlfile-extension: yaml
通过spring.cloud.nacos.config.file-extension
参数进行修改默认的Nacos Config
所匹配的默认文件扩展名。
在上面的配置文件内要注意的时,
hengboy-spring-cloud
要与Nacos Console
内添加的配置data-id
前部分匹配,也就是匹配:hengboy-spring-cloud.yaml
。
读取配置
下面我们通过简单的几个步骤来读取我们配置的yaml
配置内容。
第一步:创建一个配置读取的Controller
创建一个名为ConfigController
的配置查询控制器,并且类上配置@RequestMapping("/config")
。
第二步:通过@Value注解读取配置信息
我们在之前章节通过applicationContext#getEnvironment#getProperty
方法可以直接获取对应的Nacos Config
的配置信息,当然SpringCloud Alibaba
也同样支持通过@Value
注解来获取配置信息,如下所示:
@RestController
@RequestMapping(value = "/config")
@RefreshScope
public class ConfigController {/*** 读取hengboy.name配置信息*/@Value(value = "${hengboy.name:}")private String userName;/*** 读取hengboy.age配置信息*/@Value(value = "${hengboy.age:}")private String userAge;/*** 获取配置内容** @return*/@RequestMapping(value = "/get")public String getConfig() {return userName + ":" + userAge;}}
解释:
${hengboy.name:}
表示需要从全局的配置内容中读取hengboy.name
的配置信息,如果没有找到则使用冒号(:)
后的内容,当然这里我们没有添加任何的默认值,如果没有配置则为空字符串
。
第三步:通过@RefreshScope注解实时刷新配置信息
我们在ConfigController
控制器上添加了注解@RefreshScope
主要目的是来实时同步通过Nacos Console
修改的配置内容。
@RefreshScope
注解是SpringCloud
内部提供,用于配置热加载
。
第四步:运行测试
启动应用程序,我们通过curl http://localhost:8080/config/get
可以获取我们在Nacos Console
添加的配置内容:admin:25
第五步:实时更新测试
通过Nacos Console
我们修改下两个参数的内容并且重新发布配置信息
:
hengboy.name : admin -> admin-change-after
hegnboy.age : 25 -> 30
再次通过curl http://localhost:8080/config/get
命令访问,我们已经可以得到更新后的配置内容:admin-change-after:30
代码示例
本章代码在源码的名称为:spring-cloud-alibaba-nacos-config-yaml
,在SpringCloud-Alibaba/Nacos-Config
目录下。
- Github:https://github.com/hengboy/spring-cloud-chapter
- Gitee:https://gitee.com/hengboy/spring-cloud-chapter
开源信息
- MicroJob
micro-job是一款分布式任务调度执行框架,用于集群环境负载均衡条件下的任务分发以及任务消费
任务消费者节点定义任务 & 任务自动上报
任务调度器自动根据负载均衡策略来选择不同的消费者节点进行任务消费
[点击查看MicroJob官方文档](http://job.yuqiyu.com/#/)
下面的内容你感兴趣吗?
- SpringCloud 核心技术
- Nacos 核心技术
- SpringBoot 核心技术
SpringCloud Alibaba - Nacos 作为配置中心 读取Yaml配置信息相关推荐
- SpringCloud Alibaba - Nacos 作为配置中心 读取Properties配置信息
SpringCloud Alibaba是阿里巴巴致力于对微服务的管理.配置.注册等一整套的解决方案. 简介 Nacos 提供用于存储配置和其他元数据的 K-V 存储,为分布式系统中的外部化配置提供服务 ...
- .Net Core 自定义配置源从配置中心读取配置
配置,几乎所有的应用程序都离不开它..Net Framework时代我们使用App.config.Web.config,到了.Net Core的时代我们使用appsettings.json,这些我们再 ...
- SpringCloud学习之(十八)SpringCloud Alibaba Nacos服务注册和配置中心
文章目录 (十八)SpringCloud Alibaba Nacos服务注册和配置中心 1.Nacos简介 1.1 为什么叫Nacos 1.2 Nacos是什么 1.3 Nacos能干嘛 1.4 Na ...
- nacos当配置中心读取其他配置文件_SpringBoot+Nacos实现配置中心
为什么需要配置中心 不知道你是否遇到过以下情况: 同一个项目有多套配置,分布在不同的配置文件中,需要修改时,要改多个文件,有时候会遗漏配置 某天突然需要修改线上的一个配置,只能修改.提交,重启服务 项 ...
- 客户端启动报错java.lang.IllegalArgumentException: no server available的解决方案 SpringCloud中 Nacos做注册中心
客户端启动报错java.lang.IllegalArgumentException: no server available的解决方案 SpringCloud中 Nacos做注册中心(谷粒) 报错内容 ...
- SpringCloud config 配置中心集群配置以及整合消息总线BUS实现关联微服务配置自动刷新
一.SpringCloud Config 基本配置中的问题 在上一章节<SpringCloud config 配置中心介绍与基本配置使用>中我们现实了配置中心的配置集中管理.调用微服务应用 ...
- Apollo配置中心与本地配置优先级
背景 在项目重构时,删除若干个application-{env}.yml文件,仅保留一个application.yml文件,该文件中保留的配置项都是几乎不会变更的配置,至于需要跟随不同环境而变更的配置 ...
- 分布式配置中心 Disconf 安装配置
分布式配置中心 Disconf 安装配置 前提准备 CentOS 服务器一台 MySQL 数据库一台 安装依赖软件 安装 JDK 安装 Git 安装 Maven 安装 Zookeeeper 安装 To ...
- SpringCloud学习记录 | 第十五篇:SpringCloud Alibaba Nacos配置中心-单机版
重要.重要.重要 官网资料:https://nacos.io/zh-cn/docs/what-is-nacos.html NacosConfigServer端 前面一篇文章意见说了怎么部署一个Naco ...
- SpringCloud Alibaba Nacos服务注册和配置中心-微服务(二十六)
Nacos作为服务注册中心演示 官网文档 基于Nacos的服务提供者 新建Module cloudalibaba-provider-payment9001 POM 父POM <?xml vers ...
最新文章
- 最高奖金5万|带打目标检测大赛!还给匹配神助攻队友!
- 最详细的linux下的磁盘分区及格式化
- 第三十八期:用Git帮助写作者更好地完成工作
- 判断变量是空_Python 判断变量是否是 None 的三种写法
- 如何将一棵树转换成二叉树
- 使用awk进行文本处理
- atitit.提升性能AppCache
- matlab:图像的余弦变换(DCT)
- 图书管理 python excel_爬取python异步社区图书并写入excel
- 基于SSM【爱校图书馆管理系统】附源码+论文
- Cmake编译时无法打开包括文件: “pthread.h”
- lpddr3 阻抗_LPDDRx的总结
- 9种常见的HR数据分析方法
- paypal订阅流程及api请求
- 卖货文案二:建立消费者信任
- 23种设计模式学习记录之单例设计模式
- 神仙打架看不懂?用人话解读NIPS神经网络攻防赛清华三连冠团队模型算法
- centos查看磁盘转速_Centos磁盘读写检测进行性能判断
- Google Earth Engine(GEE)——清华全球不透水层数据中国区域逐年下载
- 官宣:浙江卫视携手有哇宇宙重磅推出《奔跑吧·共同富裕篇》专属数字藏品,致敬中国新农村建设成就!...