Spring boot Spring启动外部配置覆盖不工作

Spring boot Spring启动外部配置覆盖不工作,spring-boot,Spring Boot,我的资源文件夹中有一个application.yml和application qa.yml。 我有一个外部应用程序qa.yml。 我希望外部应用程序qa.yml中的属性覆盖默认应用程序.yml中的匹配属性,而从内部应用程序qa.yml中,我不希望覆盖整个文件 我正在添加这个VM选项(在Intellij中):-Dspring.config.additional location=文件:{absolute/path/to/external/ending/with/application qa.yml

我的资源文件夹中有一个
application.yml
application qa.yml
。 我有一个外部
应用程序qa.yml
。 我希望外部
应用程序qa.yml
中的属性覆盖默认
应用程序.yml
中的匹配属性,而从内部
应用程序qa.yml
中,我不希望覆盖整个文件

我正在添加这个VM选项(在Intellij中):
-Dspring.config.additional location=文件:{absolute/path/to/external/ending/with/application qa.yml}

我还有in-env变量(也在Intellij中):
spring.profiles.active=qa

由于某种原因,覆盖不起作用,我从内部
应用程序qa.yml
获取值,而不是从外部获取值

尝试将外部文件命名为
application.yml
,但无效

更新:


如果我从路径末尾删除
application qa.yml
,只给出文件所在文件夹的路径,但我想指定一个文件,我不希望他获取目录中的所有内容。

这是从1.x到2.x的行为变化。spring.config.location将覆盖默认值,而不是添加到其中。我们需要使用spring.config.additional-location来保持默认值。因此,如果要覆盖,请尝试使用spring.config.location。

我要覆盖特定属性,而不是整个文件,如果不清楚,很抱歉,您仍然可以保留所有属性并覆盖外部文件中的选定字段。如何?当我使用spring.config.location时,我在内部
application qa.yml
中拥有的属性将消失….-Dspring.config.location=file:{absolute/path/to/external/ending/with/application qa.yml}外部文件应该包含资源文件夹中application-qa.yml的所有属性。