【问题排查】No spring.config.import property has been defined
·
一、场景复现
最近在搭建 Spring Cloud 微服务架构时,计划通过 Nacos 统一管理配置文件,于是在 application.yml 中添加了如下配置:
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
config:
import: nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}
启动服务时直接抛出异常:No spring.config.import property has been defined,明明已经配置了spring.config.import,却依然报错,排查了配置格式、Nacos 连接信息都没问题,最后定位到是依赖缺失导致的。
二、根源分析
Spring Boot 2.4.x 版本后,官方对配置加载机制进行了优化,将bootstrap.yml对应的功能从核心依赖中剥离,单独放在了spring-cloud-starter-bootstrap依赖中。而spring.config.import属性是用于加载外部配置(如 Nacos、Config Server)的关键配置,其解析依赖于 bootstrap 启动流程的支持。
如果项目中没有引入spring-cloud-starter-bootstrap依赖,Spring 容器启动时无法识别spring.config.import配置,就会抛出上述异常。
简单说:不是配置写得不对,是少了 “解析这个配置” 的依赖。
三、解决方案
在项目的 pom.xml中添加如下依赖,版本建议与 Spring Cloud 的版本保持兼容:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.7</version>
</dependency>
然后刷新maven项目即可
更多推荐



所有评论(0)