首页 文章

Spring引导外部application.properties

提问于
浏览
8

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

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

我尝试了几种方法:

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

_1597522_中的application.properties

  • spring.config.location=/etc/projectName/application.properties

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

1 回答

  • 16

    我总是在documentation中指定的命令行中使用 --spring.config.location= ,您可以在其中放置各种文件,一个使用默认值,另一个使用重写文件 .

    编辑:
    或者,您也可以使用以下内容:

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

    并在application.properties中指定 external.config .
    这将提供覆盖配置的默认路径,通过在命令行中指定 --external.config ,它仍然可以覆盖 .
    我使用它将 ${external.config} 定义为系统env变量,但它也应该与application.properties变量一起使用 .

相关问题