Spring Cloud 整合 nacos 实现动态配置中心
上一篇文章讲解了Spring Cloud
整合 nacos
实现服务注册与发现,nacos
除了有服务注册与发现的功能,还有提供动态配置服务的功能。本文主要讲解Spring Cloud
整合nacos
实现动态配置服务。主要参考官方部署手册点我。
前提条件
先下载nacos
并启动nacos
服务。操作步骤详见Nacos 快速入门。
整合步骤
1. 添加依赖
版本
nacos
2.1.x.RELEASE 对应的是Spring Boot
2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是Spring Boot
1.5.x 版本。版本不匹配的话,会出现很多莫名其妙的问题。nacos
依赖版本要和nacos
服务端版本要一致。
2. 新建 nacos 配置
在nacos
控制台添加配置列表:
设置dataId
为nacos-config
,文件后缀为Properties
,设置内容user.name=jack
:
3. bootstrap.properties 配置
在application.yml
同目录下创建bootstrap.yml
文件,并配置Nacos
服务地址以及namespace
(没有就不需要配置):
4. 配置 dataId
dataId
对应步骤2
里面的dataId
,有两种配置方式,一种是官方自动构建dataId
,另一种是指定dataId
。
4.1 自动配置 dataId
在Nacos Spring Cloud
中,dataId 的完整格式如下:
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。spring.profiles.active
即为当前环境对应的profile
。 注意:当spring.profiles.active
为空时,对应的连接符 - 也将不存在,dataId
的拼接格式变成${prefix}.${file-extension}
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
比如项目名称为nacos-config-client
,当前环境为test
,格式文件为properties
,那就需要新建一个dataId
为nacos-config-client.properties
配置。
4.2 手动设置 dataId
在NacosConfigProperties
类里面name
字段就是配置dataId
:
在bootstrap.yml
添加spring.cloud.nacos.config.name
就可以设置dataId
。
5.获取数据
通过@Value
就能获取配置文件的数据:
要实现配置的自动更新,需要添加Spring Cloud
原生注解 @RefreshScope
。controller
直接调用即可:
如果想通过@NacosValues
注解获取数据,需要引入nacos-config-spring-boot-starter
依赖:
总结
nacos-config
配置首先添加spring-cloud-starter-alibaba-nacos-config
依赖。在配置列表添加配置
bootstrap.properties
添加nacos server
地址和namespace
配置
dataId
有两种方式手动配置,配置
spring.cloud.nacos.config.name
自动配置,根据
${prefix}-${spring.profiles.active}.${file-extension}
规则配置,其中prefix
为项目名称,spring.profiles.active
为项目运行环境,file-extension
配置内容的数据格式。通过
@Value(value = "${user.name:null}")
设置在字段上就能获取到属性,要实现自动更新配置需要添加@RefreshScope
注解。
评论