Spring Cloud Config:客户端不尝试连接到配置服务器

Spring Cloud Config: client doesn't attempt to connect to the config server

我正在尝试创建一个简单的 Spring Cloud Config server/client 设置并大致遵循文档:

https://cloud.spring.io/spring-cloud-config/reference/html/

到目前为止,我已经实现了一个似乎可以正常工作的服务器,即当我调用相应的端点时 return 正确的 属性 值:

GET http://localhost:8888/config-client/development

{
  "name": "config-client",
  "profiles": [
    "development"
  ],
  "label": null,
  "version": null,
  "state": null,
  "propertySources": [
    {
      "name": "classpath:/config/config-client-development.properties",
      "source": {
        "user.role": "Developer"
      }
    }
  ]
}

但是,我无法让客户端连接到服务器。我做了以下事情:

  1. 添加了 spring-cloud-starter-config 依赖项:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
  1. 添加了一个 bootstrap.properties 文件:
spring.application.name=config-client
spring.profiles.active=development
spring.cloud.config.uri=http://localhost:8888

但我仍然得到一个

java.lang.IllegalArgumentException: Could not resolve placeholder 'user.role' in value "${user.role}"

尝试 运行 客户端应用程序时。

应用程序日志中没有任何内容看起来像是客户端正在尝试与配置服务器通信。

Link 到重现问题的 minimal GitHub 存储库: https://github.com/Bragolgirith/spring-cloud-minimal

重现步骤:

  1. 构建并运行 config-service 应用程序
  2. 构建并运行 config-client 应用程序

知道我做错了什么吗?

好的,解开谜团。

似乎一周前发布了一个新的 Spring 云版本 (https://spring.io/blog/2020/10/07/spring-cloud-2020-0-0-m4-aka-ilford-is-available),它有一种激活 bootstrap 进程的新方法 - 现在它不会发生默认,但需要添加额外的依赖项:

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

虽然这个新版本现在是您使用 Spring Initializr,文档仍未更新以反映更改 - 它们仅在发行说明中简要提及。

作为使用上述 spring-cloud-starter-bootstrap 依赖项和 bootstrap.properties 文件的替代方法,现在似乎也可以使用以下内容(甚至是首选):

application.properties

spring.application.name=config-client
spring.profiles.active=development
spring.config.import=configserver:http://localhost:8888