在Docker容器中运行Spring Boot的jar包 jar外的配置文件无法生效

Spring Boot加载配置文件,默认会从几个固定位置搜索一下看看有没有配置文件

——application.properties或者bootstrap.properties(如果你使用了spring cloud 相关jar包的话)存在。

这几个位置分别是:

classpath:/,classpath:/config/,file:./,file:./config/

他们定义在:

看到这个地方你应该明白了:

后边两个带“file:”的目录是相对目录,相对的不是你的jar包的存放位置,而是你执行java -jar的目录。

为了方便理解,再打个比方吧:

假如你的jar包路径为: /usr/apps/app.jar

而你在根目录“/”下执行了:java -jar /usr/apps/app.jar

那么你的配置文件不应该放在 /usr/apps/config 或者/usr/apps/ 下,而是应该放在 / 或者 /config下。

 

当然你也可以直接使用 

 java -jar /usr/apps/app.jar --spring.config.location=/usr/apps/application.properties

 直接指定配置文件的路径。

 

原文地址:https://www.cnblogs.com/flying607/p/8716021.html