デプロイメント環境に複数の jdk があり、デフォルトの jdk バージョンが jdk8 より低い場合。 springboot アプリケーションをデプロイするときは、jdk を jdk8 以降として指定する必要があります。問題が発生します。スプリングブート アプリケーションの外部構成ファイルをロードできず、アプリケーション jar にインポートされたデフォルトの構成ファイルが常に使用されます。
この問題を解決するには、次の 2 つの方法があります。
起動パラメータを追加します--spring .config。 added-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 &
それでは、上記の 2 つの起動パラメーターの違いは何でしょうか。 --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外部設定ファイルを指定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。