web-dev-qa-db-ja.com

特定の環境用の春のymlファイル

つまり、3つのymlファイルがあります。

  • application-default.yml->デフォルトのプロパティ、すべてのプロファイルで使用できる必要があります
  • application-dev.yml->開発プロファイルのみのプロパティ
  • application-prod.yml->製品プロファイルのみのプロパティ

-Dspring.profiles.active=devを渡してブートアプリケーションを起動すると、application-dev.yml固有のプロパティにアクセスできます。しかし、application-default.ymlファイルで定義されているプロパティを取得できません。以下は私のapplication-dev.ymlファイルです。

Spring:
 profiles:
  include: default

spring.profiles: dev

prop:
 key:value
11
Amar Dev

私は私の問題を解決することができました、これが私がしたことです。

Application-common.ymlファイルを作成し、そこに共通プロパティを配置します。次に、application- {env} .ymlファイルでこれを上に配置します。

spring:
 profiles:
  include: default

特にデフォルトのプロファイルをロードする必要がないので、これでうまくいきます!!!

5
Amar Dev

TL; DR

application-default.ymlファイルの名前をapplication.ymlに変更し、期待どおりに動作します。

説明

ドキュメントの説明 によると、アプリケーションを実行するとapplication- {suffix} .ymlというファイルがアクティブになります名前がサフィックスと一致するプロファイルを使用します。さらに、メインapplication.ymlはデフォルトでロードされるため、すべてのプロファイルに共通のプロパティを配置するのに最適な場所です。あるいは、ファイルの名前をapplication-default.ymlとして保持する場合は、Spring Bootアプリケーションに2つのプロファイルを渡すことができます。

-Dspring.profiles.active=default,dev

これにより、2つのプロファイルがアクティブになり、両方のプロパティファイルが読み込まれます。

24

私がしていることは:

一般的な設定をapplication.xml、およびこのファイルに以下を追加します。

spring:
  profiles:
    active: dev, pro, xxx...

アクティブ化するすべてのプロファイル。

このファイルを編集して環境を切り替えるだけです。

外部ファイルが進行するので、別のapplication.xml WARの外で、このファイルを毎回編集する代わりに、dev/pro/...環境をアクティブ化します。必ずドキュメントを確認してください:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

1
WesternGun