一次docker环境下spring错误读取配置文件问题的排查纪录

起因是发现docker环境上部署的spring配置文件读取错误,jar的目录下配置文件指向test环境但是实际应用启动后却读取到Jar包内的dev配置文件。先记录一下最终结论:
当执行java -jar命令启动spring应用时,spring会在执行命令的目录下寻找是否存在application.properties,而不是在jar文件所在的目录


做个实验来验证一下。
jar同级目录下放置了两个配置文件,主配置文件指定使用prod配置项,jar包内的配置文件指定使用dev配置项。
一次docker环境下spring错误读取配置文件问题的排查纪录
然后先在jar同层目录下执行命令 java -jar dw-marketing.jar,不出意外,spring选取了prod进行加载:
一次docker环境下spring错误读取配置文件问题的排查纪录
然后再退回至 / 目录,再次执行同样的命令:
一次docker环境下spring错误读取配置文件问题的排查纪录
这次排查倒是给我提了个醒:linux下面执行命令的时候务必注意命令的执行目录