spring 云配置客户端不加载配置文件。认为问题可能是配置文件设置

spring cloud config client does not load config files. Think the problem may be profile settins

我查看了过去的堆栈跟踪并且我拥有所有正确的设置。我认为这更多是配置文件的问题。

我没有使用 git 作为数据源,而是使用 S3 但它有效,当我 运行

http://localhost:8086/application/default

它returns

{
    "name": "application",
    "profiles": [
        "default"
    ],
    "label": null,
    "version": null,
    "state": null,
    "propertySources": [
        {
            "name": "s3:application",
            "source": {
                "environment.profile": "local",

在我的 pom 上我已经为 spring boot

设置了
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.3</version>
        <relativePath />
    </parent>

Spring云是

 <properties>
        <java.version>16</java.version>
        <spring-cloud.version>2020.0.3</spring-cloud.version>
    </properties>

Spring云集

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

设置启动器配置

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

在我为客户端设置的应用程序yml中

spring:
  profiles:
    active: @activatedProperties@
  application:
    name: @artifactId@
  config:
    import: "configserver:"
  cloud:
    config: 
      enabled: true
      uri: http://localhost:8086

@activatedProperties@ 是 local、dev、qa 或 prod。 问题是在这种情况下配置文件是本地的并且配置服务器期望默认值。

好的,我解决了这个问题。查看我的设置

spring:
  profiles:
    active: @activatedProperties@
  application:
    name: @artifactId@
  config:
    import: "configserver:"
  cloud:
    config: 
      enabled: true
      uri: http://localhost:8086

Config server 会做如下处理

http://localhost:8086/my-client/local

my-client 是配置文件本地应用程序的名称。它需要映射到一个包含所有配置数据的 yml 文件'

此 yml 文件将称为 my-client-local.yml。我也会有 my-client-qa.yml, my-client-dev.yml, my-client-prod.yml 所以它会选择正确的配置文件