我有一个内部 application.yml 配置文件,位于类路径上的资源文件夹中。
我有一个外部配置文件:/home/username/config.properties,它覆盖了一些字段以在服务器上下文中运行。
我希望外部配置文件中的字段覆盖内部文件,如果未在外部文件中定义,则保留内部文件中的字段。
答案建议 Spring - 如何用外部文件覆盖内部配置文件不起作用。
例如,以下命令对我不起作用:
java -jar application.jar --spring.config.location=classpath:/,file:///home/minister/config.properties
我如何实现这个预期的结果?
编辑:此问题仅发生在Linux上。当我在 Windows 10 计算机上使用覆盖的配置文件运行它时,它可以正常工作。
看起来你的/
太多了,试试:
java -jar application.jar --spring.config.location=classpath:/,file:/home/minister/config.properties
您可以传递相对于.jar文件的路径,例如,
java -jar application.jar -Dspring.config.location=./config/application.properties
或
java -jar application.jar -Dspring.config.location=../common/config
这两种方法都有效。请参考 - Spring 文档,了解有关外部化配置如何工作的更多详细信息。
希望这有帮助。