0


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

服务正常启动

访问成功,问题解决


本文转载自: https://blog.csdn.net/Yosoo_/article/details/138860158
版权归原作者 Yosoo_ 所有, 如有侵权,请联系我们删除。

“IDEA报错:Injection of autowired dependencies failed;”的评论:

还没有评论