application.properties
Springアプリケーションで長い間使用されていたファイル。しかし最近、私はapplication.yaml
ファイル。 3つすべての中の優先順位とは何か、個人を使用する利点(ある場合)。
これはばかげた質問かもしれません。しかし、私はそれらの使用法と混同しています。
Springプロパティの解決プロパティの順序について説明します here 。
application.properties
およびapplication.yaml
の使用は想定されていません。どちらか一方の形式を使用してください。両方は使用しないでください。どちらを使用しても、プロパティの優先順位で12または13(ファイルがアプリケーションJARにパッケージ化されているかどうかに応じて)の位置で処理されます。
リンクの腐敗を避けるために、上記のリンクからの抜粋をここに含めます...
Spring Bootは、値を適切に上書きできるように設計された非常に特殊なPropertySource順序を使用します。プロパティは次の順序で考慮されます。
- ホームディレクトリのDevtoolsグローバル設定プロパティ(devtoolsがアクティブな場合は〜/ .spring-boot-devtools.properties)。
- テストの@TestPropertySourceアノテーション。
- テストの@ SpringBootTest#propertiesアノテーション属性。
- コマンドライン引数。
- SPRING_APPLICATION_JSONからのプロパティ(環境変数またはシステムプロパティに埋め込まれたインラインJSON)
- ServletConfig initパラメータ。
- ServletContextの初期化パラメータ。
- Java:comp/envのJNDI属性。
- Javaシステムプロパティ(System.getProperties())。
- OS環境変数。
- Random。*のプロパティのみを持つRandomValuePropertySource。
- パッケージ化されたjar外のプロファイル固有のアプリケーションプロパティ(application- {profile} .propertiesおよびYAMLバリアント)
- Jar内にパッケージ化されたプロファイル固有のアプリケーションプロパティ(application- {profile} .propertiesおよびYAMLバリアント)
- パッケージ化されたjar外のアプリケーションプロパティ(application.propertiesおよびYAMLバリアント)。
- Jar内にパッケージ化されたアプリケーションプロパティ(application.propertiesおよびYAMLバリアント)。
- @Configurationクラスの@PropertySourceアノテーション。
- デフォルトプロパティ(SpringApplication.setDefaultPropertiesを使用して指定)。
簡単に言えば、
yamlとプロパティファイルの両方があり、両方に同じキーがある場合、スプリングブートは最初にプロパティを検索し、見つからない場合はyamlに移動します。