Spring Boot 外部应用程序.properties

新手上路,请多包涵

我正在开发一个 spring boot 应用程序

我想用外部文件覆盖 src/main/resources/application.properties 中的一些属性(例如 /etc/projectName/application.properties )。

我尝试了几种方法:

  1. @PropertySource("file:/etc/projectName/application.properties") 作为注释 ApplicationConfig.java

  2. spring.config.location=/etc/projectName/application.properties 在我的application.properties中 resources

我用 spring.port 测试了它。第一种方法只添加了属性但没有覆盖它们。

原文由 greenhalos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 332
1 个回答

我总是按照 文档 中的说明在命令行中使用 --spring.config.location= ,您可以将各种文件放入其中,一个具有默认值,另一个具有覆盖的文件。

编辑:

或者,您也可以使用类似的东西:

 @PropertySources({
    @PropertySource("classpath:default.properties")
    , @PropertySource(value = "file:${external.config}", ignoreResourceNotFound = true)
})

并在您的 application.properties 中指定 external.config

这将为覆盖配置提供默认路径,通过在命令行中指定 --external.config 本身仍然可以覆盖。

我使用这个 ${external.config} 被定义为系统环境变量,但它也应该与 application.properties 变量一起使用。

原文由 JR Utily 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题