多jdk环境下指定springboot外部配置文件详解

2023-03-08 11:03:23 指定 配置文件 详解

问题描述

当部署环境中存在多个jdk,且默认jdk版本低于jdk8。我们在部署SpringBoot应用的时候,需要指定jdk为jdk8或其以上版本。随之而来的会出现一个问题:springboot应用的外部化配置文件无法加载,它会一直采用的打入应用jar的默认的配置文件。

问题解决

针对该问题,有两种方式可以解决,如下所示:

  • 添加启动参数--spring.config.additional-location
nohup /home/jdk1.8.0_251/bin/java -Xms256m -Xmx256m -jar /opt/test-app/jar/service-oa.jar --spring.config.additional-location=/opt/test-app/config/application-dev.yml,/opt/test-app/config/application.yml
 > /opt/test-app/logs/app.log 2>&1 &

注意:--spring.config.additional-location之后需要加全路径名,若有多个配置文件,可以用英文逗号隔开。特别的,如果多个配置文件在同一个文件夹中,也可以这样配置:

nohup /home/jdk1.8.0_251/bin/java -Xms256m -Xmx256m -jar /opt/test-app/jar/service-oa.jar --spring.config.additional-location=/opt/test-app/config/ > /opt/test-app/logs/app.log 2>&1 &
  • 添加启动参数 --spring.config.location
nohup /home/jdk1.8.0_251/bin/java -Xms256m -Xmx256m -jar /opt/test-app/jar/service-oa.jar --spring.config.location=/opt/test-app/config/application-dev.yml,/opt/test-app/config/application.yml
 > /opt/test-app/logs/app.log 2>&1 &

注意:--spring.config.location之后需要加全路径名,若有多个配置文件,可以用英文逗号隔开。特别的,如果多个配置文件在同一个文件夹中,也可以这样配置:

nohup /home/jdk1.8.0_251/bin/java -Xms256m -Xmx256m -jar /opt/test-app/jar/service-oa.jar --spring.config.location=/opt/test-app/config/ > /opt/test-app/logs/app.log 2>&1 &

解决办法比较

那么,以上两个启动参数有什么区别呢?
--spring.config.additional-location后面的配置文件会和默认配置(springboot应用jar包中打入的配置文件)形成互补的关系,但是它具有更高的优先级。

--spring.config.location 后面的配置文件具有强制性,即一旦添加--spring.config.location,默认配置(springboot应用jar包中打入的配置文件)就失效了,完全以--spring.config.location 后面的配置文件为准。

注意事项

在低版本的springboot中,--spring.config.additional-location并不会生效,这时候只能使用
--spring.config.location 了。
比如: 在springboot 2.3.6.RELEASE版本,--spring.config.additional-location就不会生效。

以上就是多jdk环境下指定springboot外部配置文件详解的详细内容,更多关于jdk环境springboot外部配置的资料请关注其它相关文章!

相关文章