>  기사  >  Java  >  다중 JDK 환경에서 springboot 외부 구성 파일을 지정하는 방법

다중 JDK 환경에서 springboot 외부 구성 파일을 지정하는 방법

WBOY
WBOY앞으로
2023-05-11 16:01:061475검색

문제 설명

배포 환경에 여러 개의 jdk가 있고, 기본 jdk 버전이 jdk8보다 낮은 경우. springboot 애플리케이션을 배포할 때 jdk를 jdk8 이상으로 지정해야 합니다. 문제가 발생합니다. springboot 애플리케이션의 외부 구성 파일을 로드할 수 없으며 항상 애플리케이션 jar로 가져온 기본 구성 파일을 사용합니다.

Problem Solved

이 문제를 해결하는 방법에는 아래와 같이 두 가지가 있습니다.

  • 시작 매개변수 추가 --spring.config.additional-location--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-locationrrreee

참고: --spring.config.additional-location 뒤에 전체 경로 이름을 추가해야 합니다. 구성 파일이 여러 개인 경우 영어 쉼표로 구분할 수 있습니다. 특히, 동일한 폴더에 여러 구성 파일이 있는 경우 다음과 같이 구성할 수도 있습니다. 🎜rrreee🎜🎜🎜시작 매개변수 추가 --spring.config.location🎜 ul >rrreee🎜참고: 전체 경로 이름은 --spring.config.location 뒤에 추가해야 합니다. 구성 파일이 여러 개인 경우 영어 쉼표로 구분할 수 있습니다. 특히, 동일한 폴더에 여러 구성 파일이 있는 경우 다음과 같이 구성할 수도 있습니다. 🎜rrreee🎜솔루션 비교🎜🎜그렇다면 위 두 시작 매개변수의 차이점은 무엇일까요?
--spring.config.additional-location 뒤에 있는 구성 파일은 기본 구성(springboot 애플리케이션 jar 패키지에 입력된 구성 파일)과 보완적인 관계를 형성하지만 더 높은 우선순위. 🎜🎜--spring.config.location 후속 구성 파일은 필수입니다. 즉, --spring.config.location이 추가되면 기본 구성( springboot 애플리케이션 jar 패키지 입력한 구성 파일)이 유효하지 않으며 --spring.config.location 이후의 구성 파일이 우선합니다. 🎜🎜Notes🎜🎜springboot 하위 버전에서는 --spring.config.additional-location이 적용되지 않습니다. 현재로서는
--spring만 사용할 수 있습니다. .config.location 지금.
예: springboot 2.3.6.RELEASE 버전에서는 --spring.config.additional-location이 적용되지 않습니다. 🎜

위 내용은 다중 JDK 환경에서 springboot 외부 구성 파일을 지정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제