我们正在运行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中的相同属性 .
这是预期的行为还是涉及目录时是否存在错误?