摘要
在学习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配置

然后需要将代码改成
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端口号
服务正常启动


访问成功,问题解决
对您有帮助的话,请关注我吧!