Spring Bootのコマンドラインからアクティブプロファイルと構成の場所を設定する 質問する

Spring Bootのコマンドラインからアクティブプロファイルと構成の場所を設定する 質問する

Spring Boot アプリケーションがあります。

私のアプリケーションには開発、ステージング、本番の3つのプロファイルがあります。つまり、3つのファイルがあります。

  1. アプリケーション開発.yml
  2. アプリケーションステージング.yml
  3. アプリケーションプロダクション.yml

私のapplication.ymlは 内にありますsrc/main/resources。 application.yml でアクティブ プロファイルを次のように設定しました:

spring:
  profiles.active: development

他の 3 つのプロファイル固有の構成ファイルはC:\configフォルダー内に存在します。

私はEclipse用のGradleプラグインを使用しています。「 bootRun 」を実行しようとすると、EclipseのGradle構成でコマンドライン引数を次のように設定します。

 -Dspring.profiles.active=staging -Dspring.config.location=C:\Config

ただし、コマンド ライン プロパティは反映されず、アクティブ プロファイルは常に開発として設定されます (ファイルで言及したものapplications.yml)。また、C:\Configフォルダーではプロファイル固有の構成ファイルは検索されません。

何かが足りないような気がします。過去 2 日間、それを解明しようとしてきましたが、うまくいきませんでした。どんな助けでもいただければ幸いです。

ベストアンサー1

コマンドラインで Spring プロパティを追加/オーバーライドするには、2 つの方法があります。

オプション 1: Java システム プロパティ (VM 引数)

-D パラメータは application.jar の前にあることが重要です。そうでないと認識されません。

java -jar -Dspring.profiles.active=prod application.jar

オプション2: プログラム引数

java -jar application.jar --spring.profiles.active=prod --spring.config.location=c:\config

おすすめ記事