SpringCloud集成Nacos Config配置中心无法读取配置Could not resolve placeholder ‘config.info‘ in value

本文记录了一次在使用Nacos作为配置中心时遇到的问题,即启动应用后无法从Nacos获取配置,导致Bean创建失败。问题关键在于dataid的命名规范,需包含配置文件的后缀,并且与`spring.cloud.nacos.config.file-extension`配置保持一致。解决方案是确保dataid后缀为`.yaml`或`.yml`,并且在Nacos中创建对应的配置文件。同时,提醒读者检查group和namespace的一致性,以确保配置能正确加载。
部署运行你感兴趣的模型镜像

环境:

本地nacos服务已启动,可以正常登录web管理界面

pom引入也OK

配置文件

bootstrap.yml

application.yml 

 代码

@RestController
@Slf4j
@RefreshScope
public class ConfigClientController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo(){
        return configInfo;
    }
}

 nacos

添加dataip 命名规范为 

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}的配置文件nacos-config-client-dev.yml

问题现象:

2021-10-05 14:23:24.425  WARN 20700 --- [  restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.configClientController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'config.info' in value "${config.info}"

启动后报错,无法获取到controller中通过@value注入的配置config.info

解决问题:

考虑到可能是代码和配置都没什么问题,把思路放在nacos配置中,重复多次的修改配置文件中的格式问题,包括再三的检查dataid的命名规范,最终

spring.cloud.config.file-extension:yaml

问题出在这里。

刚开始的dataid不包含后缀,文件名为:nacos-config-client-dev

修改后为:nacos-config-client-dev.yaml

期间修改过为后缀yml,无效

所以最终总结:

如果file-extension配置为yaml,那么在nacos新建配置文件时格式选择各yaml,dataid后缀也要带上,一定要和项目配置文件中的保持一致。

至于为什么别人的nacos中配置后缀为yml 而项目配置中为yaml为什么就可以正常获取配置,我就不得而知了。

以上就是问题描述和解决过程,希望对正在尝试学习nacos的朋友有所帮助。算是一个小坑吧
 

更新:

尝试了修改file-extension的配置,改为yml,在nacos中添加配置文件,dataid的后缀为yml,nacos配置格式为yaml 也是可以读取到配置的,所以说file-extension和dataid的后缀要保持一致。

如果以上还不能解决你的问题,尝试检查一下项目配置文件里的group和namespace也要与nacos里的配置保持一致。这里就不再做拓展了。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值