我们正在运行Spring Cloud Config Server v1.3.1 .

我们有Bitbucket托管Git . Git环境有一个配置文件夹,我们保存文件 . 配置文件夹下有许多子目录 . 例如

environment/configuration
application-dev.yml
my-service.yml
my-service-ci.yml
my-service.dev.yml
...

environment/configuration/datasources
application-ci.yml
application-dev.yml
...

在Spring Config Server中,应用程序和配置服务器配置如下:

spring:
    application:
        name: "@project.name@"
    cloud:
      config:
        server:
          git:
            uri: https://xxxxx/scm/dep/environment
            basedir: ${baseDirectory}/work
            searchPaths: configuration, configuration/*

使用dev配置文件加载my-service Spring Boot应用程序时,我希望首先加载应用程序特定的配置文件(my-service) . 即

environment/configuration/my-service-dev.yml
environment/configuration/my-service.yml
environment/configuration/configuration/application-dev.yml
environment/configuration/application-dev.yml

实际上它以相反的顺序加载文件夹,因此配置/ *首先以其字母顺序加载其子目录 . 接下来是直接位于配置下的文件 . 这给出了以下顺序

environment/configuration/application-dev.yml
environment/configuration/configuration/application-dev.yml
environment/configuration/my-service-dev.yml
environment/configuration/my-service.yml

Spring Boot将这些加载为包含PropertySources列表的Map . 它从开始迭代并返回第一个匹配 . 在这种情况下,application-dev.yml中的属性将胜过my-service-dev.yml中的相同属性 .

这是预期的行为还是涉及目录时是否存在错误?