根据SpringBoot文档,配置顺序为:
打包的jar之外的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
打包在jar中的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
打包的jar之外的应用程序属性(application.properties和YAML变体)。
打包在jar中的应用程序属性(application.properties和YAML变体)。
在我的项目中,我有一个名为“ prod”的配置文件和以下文件:
我还想使用外部文件覆盖某些属性。由于根据文档,外部application.yml
将被内部application-prod.yml
覆盖,因此我需要确保将外部文件视为profile specific
配置文件。
我尝试使用:
-Dspring.config.location=<my path>/application-prod.yml
我也尝试过:
-Dspring.config.location=file:<my path>/application-prod.yml
在所有情况下,我都从内部 application-prod.yml
如果我完全删除了内部配置文件,那么我会从外部获取值(所以我知道配置会拾取该文件)。
我了解到,该外部文件被视为与通用application.yml
等效,而不是特定于个人资料的文件。
如何将其配置为配置文件特定的外部配置?
答案 0 :(得分:2)
找到答案:
您需要在外部使用Directory
来设置特定于配置文件的配置文件,而不是直接使用该文件,并且该文件必须以/
结尾。因此必须是:
-Dspring.profiles.active=prod
-Dspring.config.location=/<some-path>/config/
(任何以/
结尾的路径)
其中有一个:
application-prod.yml