web-dev-qa-db-ja.com

Spring Bootはプロパティとymlファイルの両方を同時に使用することをサポートしていますか?

Spring Bootアプリケーションがあり、アプリケーションプロパティにymlファイルと、アプリケーションを構成するために設定されたプレーンアプリケーション-$ {profile} .propertiesファイルの両方を使用したいと考えています。

だから私の質問はこれを行うことができますか?もしそうなら、ymlファイルとプロパティの両方を探して環境ごとに1つのセットにそれらをマージするようにSpringBootをどのように構成しますか?

両方を使用したい/必要な理由については、ymlファイルの柔軟性と使いやすさが気に入っていますが、内部コンポーネント(暗号化用)ではプロパティファイルセットを使用する必要があるためです。

この点が指摘されているのを見ました YAMLファイルは@PropertySourceアノテーションを介してロードできません

しかし、両方を一緒に使用できるかどうかについては何も述べていません。

これを機能させる方法について、詳細な構成(XMLまたはJava config))を提供してください。

TIA、

スコット

28
Scott C.

期待どおりに機能するので、私自身の質問に答えることができます。 application.ymlファイルと適切なapplication-$ {profile} .propertiesの両方が読み込まれ、環境にマージされます。

Spring Bootは、これを自然に機能させます。通常はそうです。驚くばかり!

スコット

22
Scott C.

はい、構成を行わなくても両方を実行できます。

Spring Bootでは、次の順序で.propertiesまたは.yamlファイルを選択します。

アプリケーション-{profile}。{properties | yml} application。{properties | yml}

5
Akshay Pethani

はい同じプロジェクトで両方を同時に使用できます。

  • YMLとプロパティの両方を同時に使用する場合、たとえば
    application.ymlとapplication.propertiesを同時に
    project、最初のapplication.ymlは後で読み込まれます
    application.propertiesがロードされます
  • 注意すべき重要な点は、application.ymlとapplication.propertiesに同じキーがある場合、たとえばapplication.ymlspring.app.name = testYML)があることです。およびapplication.properties has spring.app.name = testProperties同時に同じプロジェクト内の場合、application.ymlの値は次のようになります。ついにロードされたため、application.properties値で上書きされました。
  • そして、spring.app.name = testPropertiesの値。
4
Vinoth