在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

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

 

 

 

posted @ 2018-04-04 10:48  剑握在手  阅读(7652)  评论(0编辑  收藏  举报
返回顶部↑