我正在开发一个 spring boot 应用程序
我想用外部文件覆盖 src/main/resources/application.properties
中的一些属性(例如 /etc/projectName/application.properties
)。
我尝试了几种方法:
@PropertySource("file:/etc/projectName/application.properties")
作为注释ApplicationConfig.java
spring.config.location=/etc/projectName/application.properties
在我的application.properties中resources
我用 spring.port
测试了它。第一种方法只添加了属性但没有覆盖它们。
原文由 greenhalos 发布,翻译遵循 CC BY-SA 4.0 许可协议
我总是按照 文档 中的说明在命令行中使用
--spring.config.location=
,您可以将各种文件放入其中,一个具有默认值,另一个具有覆盖的文件。编辑:
或者,您也可以使用类似的东西:
并在您的 application.properties 中指定
external.config
。这将为覆盖配置提供默认路径,通过在命令行中指定
--external.config
本身仍然可以覆盖。我使用这个
${external.config}
被定义为系统环境变量,但它也应该与 application.properties 变量一起使用。