文主要分析 Spring Cloud Alibaba Nacos 配置客户端读取配置的部分过程,逻辑入口是 com.alibaba.cloud.nacos.client.NacosPropertySourceLocator#locate
;通过本篇,
- 1、了解到 sharedConfigs、extensionConfigs 如何加载
- 2、应用配置加载时,dataId 的计算逻辑
- 3、如何通过 group 和 namespace 来隔离配置
- 4、如何禁用默认的 DEFAULT_GROUP
加载顺序和 sharedConfigs、extensionConfigs 加载逻辑
这里的配置主要指的是 sharedConfigs、extensionConfigs 以及用户通过 namespace+group+dataId 指定的应用配置。
加载顺序
// 配置临时存档的地方
CompositePropertySource composite = new CompositePropertySource(
NACOS_PROPERTY_SOURCE_NAME);
// 1、先加载 sharedConfigs
loadSharedConfiguration(composite);‘
// 2、接着加载 extensionConfigs
loadExtConfiguration(composite);
// 最后加载指定的应用配置
loadApplicationConfiguration(composite, dataIdPrefix, nacosConfigProperties, env);
这里除了需要关注顺序之后,还有一点非常重要,就是对于 sharedConfigs、extensionConfigs 两个指定的配置,他们不依赖用户指定的 group,而是使用默认的 DEFAULT_GROUP,下面来看。
sharedConfigs 加载逻辑
先通过代码大概理解下逻辑
private void loadSharedConfiguration(
CompositePropertySource compositePropertySource) {
// 通过配置获取 sharedConfigs 列表
List&l