在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
直接指定配置文件的路径。