Spring Config Server属性在目录时排序

时间:2017-09-06 05:56:42

标签: spring server config spring-cloud-config

我们正在运行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将这些加载为包含PropertySource列表的Map。它从开始迭代并返回第一个匹配。在这种情况下,application-dev.yml中的属性 将在my-service-dev.yml中胜过相同的属性。

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

0 个答案:

没有答案