没有定义 spring.config.import 属性

Kam*_*mal 18 spring-cloud-config

在创建 Spring Boot 云配置应用程序时出现以下错误。这有什么帮助吗?

没有定义 spring.config.import 属性

行动:

将 spring.config.import=configserver: 属性添加到您的配置中。如果不需要配置,请添加 spring.config.import=optional:configserver: 代替。要禁用此检查,请设置 spring.cloud.config.enabled=false 或 spring.cloud.config.import-check.enabled=false。

Tar*_*ras 102

您收到此错误是因为您使用的是新版本的 Spring Boot 和 Spring Cloud,但您尝试以旧方式配置它。

原因

Spring Cloud Config Client已更改,从技术上讲bootstrap.propertiesbootstrap.yml 文件已被弃用

正确的解决方案

  1. 将所有属性从 移至boostrap.propertiesapplication.properties(也可以.yml
  2. 删除bootstrap.properties文件
  3. spring.cloud.config.uri=http://localhost:8888用。。。来 代替spring.config.import=configserver:http://localhost:8888

这是告诉您 Spring Boot 应用程序您想要从运行在 上的Spring Cloud Config 服务加载属性的localhost:8888正确方法。

旧版解决方案

如果您想使用旧bootstrap.properties文件,只需添加以下依赖项:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个已弃用的机制,因此如果您要创建新项目,请继续使用正确的解决方案

  • 似乎很奇怪,当[文档的其他部分](https://cloud.spring.io/spring-cloud-config/reference/html/#:~:text=To%20modify%20the%20startup%20behavior% 2C%20you%20can%20change%20the%20location%20of%20the%20config%20server%20by%20using%20bootstrap.properties)仍然引用它 (3认同)

小智 40

我遇到了同样的问题。
解决方法:在pom.xml文件中添加如下依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题。

  • 这不适用于 3.0.3 版本;无论如何,指定的依赖项已被 `&lt;artifactId&gt;spring-cloud-starter-config&lt;/artifactId&gt;` 使用 (6认同)
  • 对于仍然有此问题的任何人,此答案不再是最新的,SpringBoot 2.4 或更高版本建议使用 `spring.config.import` 属性并且不需要包含另一个依赖项,除非您的首选方式是使用引导程序.yml。请参阅下面的 [@Justin Cranford's](/sf/answers/4806795031/) 和 [@shubh gaikwad's](/sf/answers/4742117061/) 答案以获取更多信息。 (2认同)

cha*_*rlb 21

从 Spring Boot 2.4 开始,导入配置是通过spring.config.import功能来完成的。

添加以下内容以application.properties连接到默认配置服务器 URL http://localhost:8888

spring.config.import=optional:configserver:
Run Code Online (Sandbox Code Playgroud)

或yml:

spring.config.import: "optional:configserver:"
Run Code Online (Sandbox Code Playgroud)

参考文档中描述了更多配置选项。

org.springframework.cloud:spring-cloud-starter-bootstrap如果您将依赖项添加到项目中,旧引导程序功能仍然可用。


shu*_*wad 6

我在实现客户端时遇到了这个问题spring-cloud-config。我已添加bootstrap.yml指定配置服务器地址。

后来,添加了以下代码本身application.yml解决了该问题。

spring:
   application:
    name: user-service
   config:
     import: optional:configserver:http://localhost:9004
Run Code Online (Sandbox Code Playgroud)


小智 6

根本原因是 Spring Boot 2.4 更改了其默认功能。新的 spring.config.import 属性是必需的。

要修复,请添加新的 spring.config.import 属性。这是 application.yml 中对我有用的示例。

spring:
  config:
    import: "optional:configserver:"
Run Code Online (Sandbox Code Playgroud)

这是文档,以防您需要设置不同的值。


小智 5

添加 bootstrap.yml 文件:

spring:
    cloud:
      config:
        enabled: true
        uri: http://localhost:9296
Run Code Online (Sandbox Code Playgroud)

其中 9296 是您的云配置服务器端口

并添加以下依赖项:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果以上不起作用,

只需将以下属性添加到您的 application.yml 文件中即可停止端口检查,因为您已经在 bootstrap.yml 中定义了它

spring:
    cloud:
      config:
        import-check:
          enabled: false
Run Code Online (Sandbox Code Playgroud)