nacos-spring-boot-project icon indicating copy to clipboard operation
nacos-spring-boot-project copied to clipboard

ext-config 中配置无法单独生效

Open xieshenace opened this issue 10 months ago • 1 comments

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.7</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>0.2.12</version>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
  </dependency>
image image 可以获取到; 但是: image

必须要在根目录有data-id后,才能再ext-config 中配置其他配置;

我的需求是:会有不同组的不统配置,但是这样就不能完全写在ext-config中了。

xieshenace avatar Apr 27 '24 06:04 xieshenace

看代码根目录data-iddata-ids必须定义其中一个,否则报错,建议nacos配置中心定义一个根目录下的data-id对应的文件,空的也行

	private List<NacosPropertySource> reqGlobalNacosConfig(ConfigurableEnvironment environment, Properties globalProperties,
			NacosConfigProperties nacosConfigProperties) {
		List<String> dataIds = new ArrayList<>();
		// Loads all data-id information into the list in the list
		if (!StringUtils.hasLength(nacosConfigProperties.getDataId())) {
			final String ids = environment
					.resolvePlaceholders(nacosConfigProperties.getDataIds());
			if(StringUtils.hasText(ids)){
				dataIds.addAll(Arrays.stream(ids.split(","))
						.filter(StringUtils::hasText)
						.collect(Collectors.toList()));
			}
		}
		else {
			dataIds.add(nacosConfigProperties.getDataId());
		}
		final String groupName = environment
				.resolvePlaceholders(nacosConfigProperties.getGroup());
		final boolean isAutoRefresh = nacosConfigProperties.isAutoRefresh();
		return new ArrayList<>(Arrays.asList(reqNacosConfig(environment, globalProperties,
				dataIds.toArray(new String[0]), groupName, nacosConfigProperties.getType(), isAutoRefresh)));
	}

fishandsheep avatar Jun 23 '24 07:06 fishandsheep