项目环境
springboot 版本:2.6.13
spring-cloud-dependencies 版本:2021.0.1
spring-cloud-alibaba-dependencies 版本:2021.0.1.0
问题产生
问题产生于,引入 Nacos 配置管理依赖,并将有关 Nacos 的信息从 application.yml 转移到 bootstrap.yml,然后在 Nacos 中填写配置文件,并在服务里通过 @Value
注解注入配置信息
bootstrap.yml 文件信息如下:
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
config:
file-extension: yaml # 文件后缀名
discovery:
cluster-name: SZ # 集群名
ephemeral: false # 设置为非临时实例
profiles:
active: dev
application:
name: service1 # 服务名
Nacos 配置文件信息如下:
注入配置信息的代码如下:
@Value("${pattern.dateformat}")
private String dateformat;
启动后报错:
解决方式
1.检查命名空间、Data ID等信息与配置文件内的信息是否一致
如果信息都一致,可以继续往下走(我出现的问题不是这个)
2.添加 bootstrap 依赖
在当前的 spring-cloud-dependencies 版本中,不默认加载 bootstrap 文件,需要手动添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
这个问题就是我的问题产生原因,因为没有加载 bootstrap 文件,导致信息丢失。加上这个依赖后,问题就成功解决了
如果把 @Value
那一行代码删掉,重新启动,可以发现服务可以启动,但是中间出现了报错信息,如下
可以看到,serviceName 为空,表示配置信息里的服务名称并没有加载成功,也就说明了 bootstrap.yml 文件没有被加载
同时,再到控制台中查看,可以发现此时的服务列表为空
息里的服务名称并没有加载成功,也就说明了 bootstrap.yml 文件没有被加载
同时,再到控制台中查看,可以发现此时的服务列表为空