ホームページ  >  記事  >  Java  >  springboot は構成ファイルのパスの順序と優先順位をどのように見つけますか?

springboot は構成ファイルのパスの順序と優先順位をどのように見つけますか?

WBOY
WBOY転載
2023-05-26 08:58:182553ブラウズ

    設定ファイル パスが検索される順序とその優先順位

    1. springboot が設定ファイル パスを検索する順序とその優先順位

    プロジェクト クラスには、システムが自動的にスキャンする 4 つの場所があります:

    1.file:/config/

    2.file:/

    3.classPath:/config/

    4.classPath:/

    1) ファイル有効性の優先順位は上から下になります。つまり、異なるパスに同じ属性がある場合、上記のパス属性が最初に選択されます (1>2>3>4)

    2) パスのスキャン順序はその優先順位 (4>3>2>1) と逆です。後のものにより上書きされます。すべてのパスがスキャンされ、補完が形成されます。

    2. 同じパスの下で

    #application.properties(application.yml)、bootstrap.properties(bootstrap.yml) の読み込み順序と優先度

    #1. アプリケーションとブートストラップの比較 (プレフィックス比較)

    ヒント: ブートストラップ タイプのファイルは、springcloud 関連の設定がマルチサービス プロジェクトに導入されている場合にのみ有効になります。Springboot は自動的にスキャンしませんブートストラップ ファイルはアプリケーション ファイルのみをスキャンするため、この 2 つの比較は spingcloud マルチサービス プロジェクトでのみ意味があります。

    1) ロード順序: アプリケーションとブートストラップが同じディレクトリにある場合: ブートストラップは最初にアプリケーションをロードし、次にロードします。

    ブートストラップ プロパティの方が優先されます。デフォルトでは、ローカル構成によってオーバーライドされません。 。 (これはインターネットや公式が言っていることですが、私自身のテストの結果、アプリケーションがブートストラップをオーバーライドすることがわかりました。私の理解では、ブートストラップのすべての属性がアプリケーションよりも優先されます。基礎となるシステムに関連する構成のみが高くなります。兄弟、議論を歓迎します)

    3) 違い: ブートストラップとアプリケーションの両方をパラメータの設定に使用できます。

    Bootstrap は、アプリケーションの初期起動と構成情報の読み取りに使用されます。これは、システム レベルでのいくつかのパラメータ設定として理解できますが、これらのパラメータは通常は変更されません。ブートストラップがロードされると、コンテンツは上書きされません。

    application.yml は、アプリケーション レベルのアプリケーション固有の構成情報を定義するために使用でき、後続のモジュールなどで使用されるパブリック パラメーターを構成するために使用できます。

    4) ブートストラップの典型的な適用シナリオ (古典的な 3 つのポイント)

      1. Spring Cloud Config Server 構成センターを使用する場合、ブートストラップで指定する必要があります。 yml spring.aplicatio 構成ファイル n.name および spring.cloud.config.server.git.uri に、構成センターに接続された構成プロパティを追加して、外部構成センターの構成情報をロードします
    • # 2. 上書きできないいくつかの固定プロパティ
    • ##3. いくつかの暗号化/復号化シナリオ

    • ##2. .properties と .yml の比較 (接尾辞の比較)

    1) 読み込み順序

    .yml が .properties

    よりも優先2) 優先レベル

    .properties .yml よりも前では、.properties は後でロードされるときに .yml を上書きするため、

    3) 違い

    1.yml は自然なツリー構造を持ち、プロパティはキーと値のペア ;

    • 2. プロパティ ファイルは「.」で区切られ、.yml は「:」で区切られます。

    • 3. .yml のインデントに TAB を使用しないでください。そうしないと、非常に奇妙なエラーが報告されます。;

    • 4.yml は、.properties よりも中国語のサポートに適しています。

    • 5.yml はクロスランゲージです。JAVA、go、Python などを含む多数の言語で使用できます。たとえば、go と java をクラウド コンピューティングでは、構成センターを使用できます。同じ構成を使用します。

    • #6. Spring にはカスタム アノテーションを導入できる @PropertiesSource アノテーションのみがあり、yml
    • ## をサポートしていないため、構成ファイルをカスタマイズするときはプロパティのみを使用できます。

      #概要: 同じレベルのディレクトリ、優先レベルのアプリケーション > ブートストラップ、.プロパティ >、yml では、プレフィックスはサフィックスより大きく、ファイル パスはファイル名より大きくなります
    • springboot 設定ファイルが有効にならない理由

      1. パッケージ化方法を jar に変更します。
    • <packaging>jar</packaging>
    2. yml ファイルの短縮形式が間違っている可能性がありますので、よく確認してください。

    3. また、あなたのものはブート プロジェクトではありません。application.yml にはリーフ マークがありません。

    1. プロジェクト構造をクリックします。

    ##2. モジュールを開いて 1 回クリックします

    #3.springboot は構成ファイルのパスの順序と優先順位をどのように見つけますか?

    ##4. プロジェクトをリファクタリング

    springboot は構成ファイルのパスの順序と優先順位をどのように見つけますか?

    以上がspringboot は構成ファイルのパスの順序と優先順位をどのように見つけますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。