nacos配置共享_SpringCloud - 服务注册与配置中心Nacos使用详解6(配置中心3:共享配置)...

本文详细介绍了如何在SpringCloud项目中使用Nacos作为配置中心实现共享配置。通过设置`shared-configs`和`extension-configs`,可以分别读取默认Group和不同Group的共享配置文件,同时支持配置自动刷新。示例展示了如何在Controller中获取并输出共享配置的属性。
摘要由CSDN通过智能技术生成

当一个项目中的服务数量增加后,配置文件也会相应地增加。而多个配置文件中会存在相同的配置,那么我们可以将相同的配置独立出来,作为该项目中各个服务的共享配置文件,这样每个服务都可以通过 Nacos进行共享配置的读取。

六、配置中心使用教程2:共享配置

1,基本用法

(1)我们在之前的基础上,增加两个配置:share-config1.properties 和share-config2.properties(仍然使用默认 Group)。

其中share-config1.properties 配置的内容如下:

share.config1=共享配置1

而 share-config2.properties 配置的内容如下:

share.config2=共享配置2

(2)接着修改项目的配置文件 bootstrap.properties,通过spring.cloud.nacos.config.shared-configs 属性指定要读取共享配置文件的 DataID(多个文件用,分隔):

注意:这种方式虽然简单,但无法指定分组(必须与默认配置在同一个 Group),也无法自动刷新。

spring.cloud.nacos.config.shared-configs=share-config1.properties,share-config2.properties

(3)接着我们对之前的 Controller进行修改,在原来的基础上增加了共享配置里的属性获取与输出:

@RefreshScope

@RestController

public class HelloController {

@Value("${from}")

private String from;

@Value("${share.config1}")

private String shareConfig1;

@Value("${share.config2}")

private String shareConfig2;

@GetMapping("/test")

public String test(){

return this.from + "
" + this.shareConfig1 + "
" + this.shareConfig2;

}

}

(4)启动项目,访问/test 接口,可以看到无论是项目默认配置的内容,还是共享配置的内容,都能成功获取到:

2,进阶用法

(1)前面的样例中共享配置必须与项目默认配置文件处于相同的 Group,但有时我们共享配置是处于其他分组的,比如下面我们新增了两个配置 share-config3.properties和 share-config4.properties(分别处于 SHARE3_GROUP和 SHARE4_GROUP):

(2)接着同样修改项目的配置文件bootstrap.properties,不过这次我们使用 spring.cloud.nacos.config.extension-configs[0] 属性来指定各个共享配置的 dataId、group 以及是否自动刷新。

注意:同上面的方式相比,这种方式可以指定分组,也支持自动刷新。

spring.cloud.nacos.config.extension-configs[0].data-id=share-config3.properties

spring.cloud.nacos.config.extension-configs[0].group=SHARE3_GROUP

spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=share-config4.properties

spring.cloud.nacos.config.extension-configs[1].group=SHARE4_GROUP

spring.cloud.nacos.config.extension-configs[1].refresh=true

(3)接着我们对之前的 Controller进行修改,在原来的基础上增加了共享配置里的属性获取与输出:

@RefreshScope

@RestController

public class HelloController {

@Value("${from}")

private String from;

@Value("${share.config3}")

private String shareConfig3;

@Value("${share.config4}")

private String shareConfig4;

@GetMapping("/test")

public String test(){

return this.from + "
" + this.shareConfig3 + "
" + this.shareConfig4;

}

}

(4)启动项目,访问/test 接口,可以看到无论是项目默认配置的内容,还是共享配置的内容(即使不在同一个分组),都能成功获取到(并且支持自动刷新):

附:两种方式结合使用

(1)上面这两种共享配置的实现方式不是互斥的,在同一个项目中可以结合使用:

spring.cloud.nacos.config.shared-configs=share-config1.properties,share-config2.properties

spring.cloud.nacos.config.extension-configs[0].data-id=share-config3.properties

spring.cloud.nacos.config.extension-configs[0].group=SHARE3_GROUP

spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=share-config4.properties

spring.cloud.nacos.config.extension-configs[1].group=SHARE4_GROUP

spring.cloud.nacos.config.extension-configs[1].refresh=true

(2)Controller这边稍作修改,将各个共享配置里的属性都输出到页面上,运行结果如下:

@RefreshScope

@RestController

public class HelloController {

@Value("${from}")

private String from;

@Value("${share.config1}")

private String shareConfig1;

@Value("${share.config2}")

private String shareConfig2;

@Value("${share.config3}")

private String shareConfig3;

@Value("${share.config4}")

private String shareConfig4;

@GetMapping("/test")

public String test(){

return this.from + "
" + this.shareConfig1 + "
" + this.shareConfig2

+ "
" + this.shareConfig3 + "
" + this.shareConfig4;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值