spring-cloud nacos config — 实现配置的动态参数变更

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结构:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值