Nacos版本更新后 ,配置中心的配置信息接收不到

场景

这几天闲着没事学习nacos,在bootstrap.yml中配置服务注册的地址信息,启动程序报错第一个错是:Param ‘serviceName‘ is illegal, serviceName is blank,这还没完,接着又出来一行报错信息Could not resolve placeholder 'config.info' in value "${config.info}",但是将配置信息放到application.yml中就不会报错,按道理来说,spring在加载配置信息的时候应该优先加载bootstrap.yml,这是怎么回事???往下看。

依赖版本

  • spring-boot-dependencies 2.5.7
  • spring-cloud-dependencies 2020.0.3
  • spring-cloud-alibaba-dependencies 2021.1

分析

我们在瞄一眼我配置的bootstrap.yml,有问题吗?没有问题啊,spring.application.name都是有值的。

server:
  port: 3377
spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      config:
#        配置服务器地址。
        server-addr: 127.0.0.1:8848
#        nasos config dataId的后缀,也是配置内容的文件扩展名。
        file-extension: yaml
      discovery:
        server-addr: 127.0.0.1:8848
#        Nacos config group, group是配置数据元信息
#        group: DEFAULT_GROUP
#       命名空间,不同环境的分离配置
#        namespace: public

打个断点看到serviceName=" “,这是怎么回事,而这个serviceName又是什么呢?后来发现,这个serviceName 来自于配置文件,如果没有指定,默认使用${spring.application.name:} 如果spring.application.name 没有指定 就默认为”";
在这里插入图片描述
这也就说明bootstrap.yml没有被spring所加载,但是bootstrap可是优先加载的配置文件呀,我就看了一下官方文档,我给截取了下来。https://docs.spring.io/spring-cloud-config/docs/current/reference/html/#config-first-bootstrap

Nacos版本更新后 ,配置中心的配置信息接收不到_第1张图片
译文:要使用传统的引导方式连接到Config Server,必须通过一个属性或spring-cloud-starter-bootstrap启动器启用引导。这个属性是spring.cloud.bootstrap.enabled=true。它必须设置为系统属性或环境变量。一旦启动了引导,类路径上的任何带有Spring Cloud Config Client的应用程序都将连接到Config Server,如下所示:当一个配置客户端启动时,它绑定到Config Server(通过Spring . Cloud . Config .uri引导配置属性),并使用远程属性源初始化Spring Environment。

看官方文档说的噼哩哗啦一大片,简单点告诉我怎么做!

总结:2020.0.X版本之后spring不在默认加载bootstrap文件需要我们自己开启,而开启的方式就是加入spring-cloud-starter-bootstrap依赖。

        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-bootstrapartifactId>
        dependency>

打完收工。

你可能感兴趣的:(nacos,bootstrap,java,spring,cloud)