【问题标题】:How to override internal configuration file in Spring Correctly?如何正确覆盖 Spring 中的内部配置文件?
【发布时间】:2019-01-14 01:32:31
【问题描述】:

我有一个内部 application.yml 配置文件,位于类路径的资源文件夹中。

我有一个外部配置文件:/home/username/config.properties,它覆盖了一些字段以在服务器上下文中运行。

如果外部文件中没有定义,我希望外部配置文件中的字段覆盖内部文件并保留内部文件中的字段。

Spring - how to override internal config file with external file 建议的答案不起作用。

例如,以下命令对我不起作用:

java -jar application.jar --spring.config.location=classpath:/,file:///home/minister/config.properties

我如何实现这个期望的结果?

编辑:这个问题只发生在 Linux 上。当我在我的 Windows 10 机器上使用覆盖的配置文件运行它时,它可以正常工作。

【问题讨论】:

    标签: java spring-boot


    【解决方案1】:

    看来你的/太多了,试试:

    java -jar application.jar --spring.config.location=classpath:/,file:/home/minister/config.properties
    

    【讨论】:

      【解决方案2】:

      您可以传递文件的路径,相对于 .jar 文件,例如,

      java -jar application.jar -Dspring.config.location=./config/application.properties
      

      java -jar application.jar -Dspring.config.location=../common/config
      

      这些工作中的任何一个。请参阅 - Spring Documentation 以获取有关外部配置如何工作的更多详细信息。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-09
        • 1970-01-01
        • 2023-02-06
        • 1970-01-01
        • 2011-05-28
        • 1970-01-01
        • 2018-11-29
        相关资源
        最近更新 更多