Spring Cloud 系列之 Alibaba Nacos 配置中心 (8)

通过配置 spring.cloud.nacos.config. config[n].refresh 来控制该配置集是否支持配置的动态刷新。默认情况下不支持。

控制层

使用 Spring 的 @Value 注解来获取配置信息,${} 中对应 Nacos 配置中心配置内容的 key,:后跟默认值。

并且通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新。

package org.example.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RefreshScope @RestController public class ConfigController { @Value("${common.name:}") private String commonName; @Value("${global.name:}") private String globalName; @Value("${refresh.name:}") private String refreshName; @GetMapping("/extConfig") public Map<String, Object> getExtConfig() { Map<String, Object> configMap = new HashMap(); configMap.put("commonName", commonName); configMap.put("globalName", globalName); configMap.put("refreshName", refreshName); return configMap; } } 测试

访问::7070/extConfig 结果如下:

Spring Cloud 系列之 Alibaba Nacos 配置中心

共享配置集

通过共享配置集的方式也可以实现公共配置的功能,唯一的区别就是共享配置集无法设置组信息,只获取 DEFAULT_GROUP。具体实现方式如下:

server: port: 7070 # 端口 spring: application: name: product-service # 应用名称 cloud: nacos: config: enabled: true # 如果不想使用 Nacos 进行配置管理,设置为 false 即可 server-addr: 127.0.0.1:8848 # Nacos Server 地址 group: MALL_GROUP # 组,默认为 DEFAULT_GROUP file-extension: yaml # 配置内容的数据格式,默认为 properties namespace: 450a3f07-08ee-49f6-8213-9b04b06cd3cc # 对应 dev 环境 # 共享配置集 shared-dataids: ext-config-common01.yaml,ext-config-common02.yaml,ext-config-common03.yaml # 多个配置集逗号隔开 refreshable-dataids: ext-config-common01.yaml # 哪个配置集支持动态刷新

访问::7070/extConfig 结果如下:

Spring Cloud 系列之 Alibaba Nacos 配置中心

配置优先级

Spring Cloud Alibaba Nacos Config 提供了三种从 Nacos 拉取配置的功能:

A:通过内部相关规则(应用名、配置内容的数据格式等)自动生成相关的 Data Id 配置;

B:通过配置 spring.cloud.nacos.config.ext-config[n].data-id 来支持多个配置集。同时配置多个配置集时,优先级关系根据 n 的值决定,值越大,优先级越高;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwzsp.html