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的所有属性。