根据SpringBoot文档,配置顺序如下:
在打包的jar之外(应用程序-{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,而不是特定于配置文件的。
如何将其配置为配置文件特定的外部配置?
发布于 2018-07-05 13:16:23
找到了答案:
您需要在外部使用Directory来设置配置文件,而不是直接使用该文件,它需要以/结尾。所以它必须是:
-Dspring.profiles.active=prod
-Dspring.config.location=/<some-path>/config/ (以/结尾的任何路径)
里面有一个:
application-prod.yml
https://stackoverflow.com/questions/51186918
复制相似问题