目标
- 基于Spring Cloud 2024与Spring Cloud Starter Alibaba Nacos Config 2023进行集成测试,兼容Nacos 2.5x,2.4x版本
- 实现多Data ID配置支持,包括通用配置(common)等场景
环境准备
- jdk17
- nacos 2.5.x (2.4.x也可以)
启动 nacos
- 下载 nacos 2.5.x
- 【windows环境启动】startup.cmd -m standalone
- 创建app-demo配置,common配置(可选)

maven 配置
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2024.0.0</version>
</parent>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<spring-cloud.version>2024.0.0</spring-cloud.version>
<nacos.version>2023.0.3.2</nacos.version>
</properties>
<dependencies>
<!-- SpringBoot基础依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringCloud Nacos服务发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos.version}</version>
</dependency>
<!-- SpringCloud Nacos配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${nacos.version}</version>
</dependency>
<!-- bootstrap.yaml 需要这个依赖, application.yaml 可以不用 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
</dependencies>
<!-- 指定了 parent 为 spring-cloud-starter-parent 也可以不需要这个 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
bootstrap.yaml 配置
spring:
application:
name: app-demo
config:
import:
- nacos:${spring.application.name}
- nacos:common # 共享文件,在 nacos 建 common 配置。不需要可以去掉
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: public
group: DEFAULT_GROUP
config:
server-addr: localhost:8848
namespace: public
group: DEFAULT_GROUP
file-extension: yaml
# common 配置,不需要可以去掉
extension-configs:
- data-id: common
group: DEFAULT_GROUP
refresh: true
Application类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
成功输出日志
2025-05-26T14:41:06.643+08:00 INFO 40496 --- [app-demo] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8989 (http) with context path '/'
2025-05-26T14:41:06.658+08:00 INFO 40496 --- [app-demo] [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
2025-05-26T14:41:06.658+08:00 INFO 40496 --- [app-demo] [ main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
2025-05-26T14:41:06.693+08:00 INFO 40496 --- [app-demo] [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, DEFAULT_GROUP app-demo 2.0.0.1:8989 register finished
2025-05-26T14:41:07.244+08:00 INFO 40496 --- [app-demo] [ main] com.shiji.icvs.Application : Started Application in 6.541 seconds (process running for 7.343)
2025-05-26T14:41:07.253+08:00 INFO 40496 --- [app-demo] [ main] c.a.c.n.refresh.NacosContextRefresher : [Nacos Config] Listening config: dataId=app-demo, group=DEFAULT_GROUP
2025-05-26T14:41:07.255+08:00 INFO 40496 --- [app-demo] [ main] c.a.c.n.refresh.NacosContextRefresher : [Nacos Config] Listening config: dataId=common, group=DEFAULT_GROUP