一次docker环境下spring错误读取配置文件问题的排查纪录
起因是发现docker环境上部署的spring配置文件读取错误,jar的目录下配置文件指向test环境但是实际应用启动后却读取到Jar包内的dev配置文件。先记录一下最终结论:
当执行java -jar命令启动spring应用时,spring会在执行命令的目录下寻找是否存在application.properties,而不是在jar文件所在的目录
做个实验来验证一下。
jar同级目录下放置了两个配置文件,主配置文件指定使用prod配置项,jar包内的配置文件指定使用dev配置项。
然后先在jar同层目录下执行命令 java -jar dw-marketing.jar
,不出意外,spring选取了prod进行加载:
然后再退回至 /
目录,再次执行同样的命令:
这次排查倒是给我提了个醒:linux下面执行命令的时候务必注意命令的执行目录