SpringCloud 2020.0.2版本的配置中心的客户端报No spring.config.import property has been defined

springcloud配置中心的客户端报No spring.config.import property has been defined

在配置中心服务端能正常从gitee上获取配置文件的情况小报如下错:
SpringCloud 2020.0.2版本的配置中心的客户端报No spring.config.import property has been defined
在springcloud 2020.0.2版本中把bootstrap的相关依赖从spring-cloud-starter-config中移除了,导致报错.
解决方法:
把application.xml改成bootstrap.xml,bootstrap.xml的优先级高于application.xml,优先被读取。同时引入下面的依赖:

  <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.0.2</version>
        </dependency>

配置bootstrap.xml的配置文件如下:

spring:
  cloud:
    config:
      discovery:
        enabled: true
        serviceId: config-server
      name: item-service
      profile: dev
      label: master

eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka

属性的含义:
serviceId:表示springcloud配置中心的服务器的spring.application.name的属性值,也就是服务名称。
name: 表示你配置文件的名称
profile:属性相当于spring.profiles.active
lable:表示你的仓库分支
上面的配置对应的配置文件在你的仓库中的名称是:
item-service-dev.xml,也就是name属性值+profile属性值,中间用‘-’隔开。

两个切记点:
客户端中的配置文件名称是:bootstrap.xml
依赖的方面,除了引入:

<!--config 配置中心的客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

还要引入bootstrap相关依赖:

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.0.2</version>
        </dependency>

这样就可以完美解决。
学习springcloud的代价是很高的,因为springcloud现在处于版本高速迭代的阶段,而且不同版本之间的功能模块的可能存在很大的差异,最好是在学习的过程中看官网的相关版本的文档,协助学习,尤其是新的版本,很大坑要自己踩。

上一篇:深度剖析C语言知识体系 原理+实践,一课带你吃透C语言


下一篇:Material Workbench Changes From 11i to R12