Spring Cloud Config Server读取仓库配置返回空propertySources问题求助
问题根因排查与解决方法
1. 核心配置冲突问题
你当前的Config Server配置同时声明了Git仓库地址和native激活 profile,两者逻辑互斥:
- 启用
spring.profiles.active=native时,Config Server会走本地文件系统加载逻辑,完全忽略spring.cloud.config.server.git.uri的配置 - native模式下没有显式声明配置文件搜索路径,所以找不到对应的
foo.properties文件,返回空的propertySources数组
2. 两种可选解决方案
方案一:继续使用Git仓库模式(推荐,符合Config Server默认设计)
去掉spring.profiles.active=native配置,同时确认本地Git仓库的foo.properties已经提交到本地Git分支(Config Server读取Git仓库内容时只会读取已提交的文件,工作区未提交的文件不会加载)。
修改后的Config Server配置:
server.port=8888 spring.application.name=server_app spring.cloud.config.server.git.uri=file:///C:/Users/rmks/git/repo
修改后重启Config Server,访问http://localhost:8888/foo/default即可看到对应的配置属性。
方案二:使用native本地文件模式(不需要Git提交,适合本地开发调试)
保留spring.profiles.active=native配置,新增native模式下的配置文件搜索路径:
修改后的Config Server配置:
server.port=8888 spring.application.name=server_app spring.profiles.active=native # 配置native模式下的配置文件搜索路径 spring.cloud.config.server.native.search-locations=file:///C:/Users/rmks/git/repo
该模式下不需要将配置文件提交到Git,直接读取指定路径下的配置文件即可。
3. 额外校验点
- 确认
foo.properties文件名和你访问的应用名匹配:你访问的路径是/foo/default,对应应用名为foo,所以配置文件名必须是foo.properties/foo.yml,和你当前的文件名一致,这部分配置没有问题 - 若使用2020.0.x及以上版本的Spring Cloud,需要在客户端引入
spring-cloud-starter-bootstrap依赖,否则客户端不会主动加载bootstrap配置,无法连接Config Server - 确认pom.xml中Config Server的依赖引入正确:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
且启动类上添加了@EnableConfigServer注解。
内容的提问来源于stack exchange,提问作者muthu
相关产品推荐
相关产品推荐

