IDEA报错:Injection of autowired dependencies failed;

24 年 4 月 8 日 星期一 (已编辑)
500 字
3 分钟

摘要

在学习Nacos时,IDEA总是报错: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配置

然后需要将代码改成

yaml
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端口号

服务正常启动

访问成功,问题解决

对您有帮助的话,请关注我吧!

文章标题:IDEA报错:Injection of autowired dependencies failed;

文章作者:Yosoo

文章链接:https://yosoo.wang/posts/2024-07/idea-error-message[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。