Spring Boot アプリケーションがあります。
私のアプリケーションには開発、ステージング、本番の3つのプロファイルがあります。つまり、3つのファイルがあります。
- アプリケーション開発.yml
- アプリケーションステージング.yml
- アプリケーションプロダクション.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