Spring Boot3.1.4迁移后FeignClient读取application.yaml URL失败如何修复
问题分析与解决方案
核心问题
- 配置文件结构错误:你的
application.yaml中,cloud节点未归属于spring根节点,且url的缩进层级错误,导致配置无法被Spring正确加载。 - 占位符与配置key不匹配:代码中使用
${spring.cloud.openfeign.client.config.new-common-service.url}作为占位符,但原配置文件缺少spring前缀,Spring无法解析该占位符,直接将未替换的字符串作为URL,引发格式错误。
修复步骤
1. 修正application.yaml配置
调整为正确的层级结构,确保cloud属于spring节点,且url是new-common-service的子配置项,同时给URL加上http://前缀避免自动补全异常:
spring: cloud: openfeign: client: config: new-common-service: url: http://localhost:9090/serve
2. 验证FeignClient代码
你的FeignClient代码中的占位符已经和修正后的配置key匹配,无需修改:
@FeignClient(name = "new-common-service", url = "${spring.cloud.openfeign.client.config.new-common-service.url}") public interface NewCommonServiceClient { @GetMapping(value = "/test") ResponseEntity<?> testRequest(); }
3. 额外说明
Spring Cloud 2022.0.3(Kilburn版本)默认用Spring Cloud LoadBalancer替代了Ribbon,但你当前场景是直接指定URL无需负载均衡,只要配置正确即可正常运行,无需额外调整负载均衡相关设置。
内容的提问来源于stack exchange,提问作者Sreejesh
相关产品推荐
相关产品推荐

