Spring Boot Config Client使用bootstrap.properties无法从Config Server加载配置
问题根因
你使用的Spring Cloud 2020.0.x(代号Ilford)及以上版本,调整了配置中心的默认加载逻辑,不再默认自动加载bootstrap上下文的配置,要求通过spring.config.import属性显式声明引入配置服务器的配置,所以触发了本次启动报错。
解决方案
方案1(官方推荐)
直接按照报错提示配置spring.config.import属性即可,不需要依赖bootstrap上下文:
- 可以把配置从
bootstrap.properties移到application.properties中,删除原来的spring.cloud.config.uri配置,新增如下内容:
spring.application.name = eon-service # 强制依赖配置中心,配置中心不可用则服务启动失败 spring.config.import=configserver:http://localhost:8888
如果允许配置中心不可用的时候服务也能正常启动,改成如下配置即可:
spring.config.import=optional:configserver:http://localhost:8888
- 重启服务即可正常加载配置中心的配置。
方案2(兼容旧版本逻辑)
如果你希望继续沿用之前bootstrap.properties的配置方式,不需要修改现有bootstrap配置,只需要在application.properties中新增如下配置启用bootstrap上下文即可:
spring.cloud.bootstrap.enabled=true
排查校验
配置完成启动服务前,先确认Config Server服务已经正常启动,访问http://localhost:8888/eon-service/default可以正常返回对应的配置内容,避免因为配置服务本身不可用导致加载失败。
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

