IDEA报错:Injection of autowired dependencies failed;

在学习Nacos时,idea总是报错:Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'pattern.dateformat' in value "${pattern.dateformat}"

Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'pattern.dateformat' in value "${pattern.dateformat}"

 报错具体信息:

我们可以看是否有bootstrap.yml文件

我原本里面的 bootstrap.yml文件如下,这是学习视频中照敲的代码。发现报错

检查bootstrap.yml文件的name和active和file-extension是否与Nacos中的DataID是否对应;还有是否是在默认的public命名空间下,如果不是,则需要在config下再写namespace配置

然后需要将代码改成 

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos地址
      config:
        server-addr: localhost:8848 # nacos地址
        file-extension: yaml # 文件名后缀

没错,需要将config下也配置nacos的地址。至于为什么:

  1. 服务发现 (discovery): 这个 server-addr 配置是用于服务注册与发现的。当一个微服务启动时,它会将自己的信息注册到 Nacos,这样其他服务就可以通过 Nacos 来发现并调用它。这里的 server-addr 指定了 Nacos 服务器的地址,以便服务可以注册自己并被其他服务发现。

  2. 配置管理 (config): 另一个 server-addr 配置是用于配置管理的。在微服务架构中,服务的配置信息(如数据库连接信息、API 密钥等)通常不会硬编码在代码中,而是存储在外部的配置中心。这样,当需要更改配置时,只需在配置中心进行更改,而不需要重新部署服务。这里的 server-addr 同样指定了 Nacos 服务器的地址,但这次是为了让服务从 Nacos 配置中心获取配置信息。

在Usercontroller层里,可以加@RefreshScope也可以不用,@RefreshScope是实现配置热更新的,也不用将@Value改成@NacosValue

再在bin目录下cmd启动Nacos

再启动UserApplication,访问User端口号

服务正常启动

访问成功,问题解决

  • 18
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值