1、下载安装 Nacos (下载地址 https://github.com/alibaba/nacos/releases)并启动 Nacos server(以Windows为例),下载后启动bin文件夹下“startup.cmd”,待出现“Nacos started successfully......”启动成功。
1.1 在浏览器中输入“http://localhost:8848/nacos/”(默认端口8848,可在conf/application.properties中修改),确认服务启动成功。
2、POM文件添加MAVEN依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
3、编辑配置文件,在 bootstrap.yml(必须在系统级 bootstrap.yml 中配置,application.yml 中不生效) 中配置 Nacos server 的地址和应用名。file-extension 默认是 Properties,如果用yaml格式,需要加参数 “file-extension: yaml” 。
server:
port: 8083
spring:
application:
name: testconfig
cloud:
nacos:
#discovery:
# server-addr: localhost:8848
config:
server-addr: localhost:8848
file-extension: yaml
3.1、创建 application.yml 测试配置文件
resour:
show: abc
4、Controller 测试,在需要动态参数的类上加入@RefreshScope,通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新
@RestController
@RefreshScope
public class Test {
//取类
@Value("${classshow:test}")
private String classShow;
//取配置文件
@Value("${resour.show}")
private String show;
@RequestMapping("showmsg/{str}")
public String show(@PathVariable String str)
{
return classShow+":"+str+"-"+show;
}
}
测试:
5、通过nacos管理控制台实现动态参数配置,“配置管理” > “配置列表” > “+(加号)”
参数说明:
“Data ID” 格式为${prefix}-${spring.profile.active}.${file-extension}
- prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- spring.profile.active 即为当前环境对应的 profile。( 当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension})
- file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
- (参考官网NACOS动态配置介绍 https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html)
“Group” 是分组,默认为“DEFAULT_GROUP”。“配置格式” 用的什么格式选什么格式,我这里用的是YAML。要修改的动态参数按照格式写在 “配置内容” 中,完成后 “发布”
测试:值已经变了
Demo结构: