オンラインで正解は見つかりませんでした。
Spring Bootのymlファイルは相互に「継承」しますか?私が持っている場合:application.yml
server:
port: 80
Host: foo
およびapplication-profile1.yml
のみ
server:
port: 90
したがって、アクティブプロファイルとしてprofile1
を使用してSpringBootを開始した場合、server.Host
プロパティもfoo
に設定されますか?
はい、application.yml
ファイルはどのapplication-{profile}.yml
ファイルよりも優先されます。プロファイル固有のymlファイルのプロパティはデフォルトのapplication.yml
ファイルの値を上書きし、プロファイル固有のymlファイルに存在しないプロパティはデフォルトのファイルからロードされます。これは、.properties
ファイルとbootstrap.yml
またはbootstrap.properties
に適用されます。
Spring Bootのドキュメントには、 72.7環境に応じて構成を変更する 段落で記載されています。
この例では、デフォルトのポートは9000ですが、Springプロファイルの「開発」がアクティブな場合、ポートは9001であり、「本番」がアクティブな場合は0です。
YAMLドキュメントは、検出された順序でマージされます(したがって、後の値が前の値をオーバーライドします)。
プロパティファイルで同じことを行うには、
application-${profile}.properties
を使用してプロファイル固有の値を指定できます。