ホームページ  >  記事  >  Java  >  springboot のデフォルトの読み込みパスは何ですか?

springboot のデフォルトの読み込みパスは何ですか?

王林
王林転載
2023-05-15 22:16:041159ブラウズ

1. application.properties/.yml ファイルの最初の紹介

前述したように、application.properties ファイルは設定されていません。ここで、main/resources フォルダーの下に新しい application.properties ファイルを作成します。次の構成を記述します。

springboot のデフォルトの読み込みパスは何ですか?

次に、プロジェクトを開始します。

springboot のデフォルトの読み込みパスは何ですか?

OK、起動結果のスクリーンショットをご覧ください。上では、ポート「9090」でサービスが開始されていることがわかります。次に、このディレクトリに application.yml ファイルを設定すると、

springboot のデフォルトの読み込みパスは何ですか?

起動結果は次のようになります。

springboot のデフォルトの読み込みパスは何ですか?

サービスがまだポート「9090」で開始されていることがわかります。このため、次の結論を導き出します。同じフォルダー内に application.properties と application.yml という 2 つのファイルがある場合、application.properties ファイルが application.yml ファイルを上書きし、application.properties ファイルが有効になります。

yml ファイルとは

yml は、非常に直観的なデータシリアル化方法である YAML (YAML Aint Markup Language) で記述されたファイル形式です。これは、非常に簡単に言えば、XML ファイルやプロパティ ファイルに似た新しいファイル形式です。

2. application.properties/.yml ファイルは他のパスに置くことができますか?

このタイトルを見た友人は間違いなく、「application.properties は他のパスに置くことができますか?」と言うでしょう? はい、その通りだと思います。 。 application.properties/.yml を main/resources フォルダーに置きます。プロジェクトの実行中、このフォルダー内のファイルはクラス フォルダーにコピーされるため、このパスはクラスパスとも呼ばれます。

springboot ソース コードで "application.properties" を検索し、ConfigFileApplicationListener のようなクラスを見つけます。このクラスのコメントに次の段落があります。

* {@link EnvironmentPostProcessor} that configures the context environment by loading
 * properties from well known file locations. By default properties will be loaded from
 * 'application.properties' and/or 'application.yml' files in the following locations:
 * <ul>
 * <li>file:./config/</li>
 * <li>file:./config/{@literal *}/</li>
 * <li>file:./</li>
 * <li>classpath:config/</li>
 * <li>classpath:</li>
 * </ul>

これは通常、「EnvironmentPostProcessor がパスする」ことを意味します既知のファイル パスからプロパティをロードして、コンテキストを構成します。デフォルトのプロパティは、application.properties/application.yml ファイルから取得されます。これらのファイルは、次のパス「,

file:./config/ ルート フォルダー」から取得されます。 (ルートファイルフォルダー (プロジェクトフォルダー) 下のプロジェクトファイル config ディレクトリ

file:./config/{@literal *}/ config/*/ ルートファイルフォルダー (プロジェクトフォルダー) 下のディレクトリ

file:./ ルート ファイル フォルダー (プロジェクト フォルダー) の下

classpath:config/ config/

classpath under classpath: under classpath

わかりました。 application.properties/application.yml ファイルは上記の場所からロードされ、構成した main/resources は実際には上記の classpath: であるため、上記のパスも適切ですか? ConfigFileApplicationListener クラスに沿って読み続けてください。

// Note the order is from least to most specific (last one wins)
private static final String DEFAULT_SEARCH_LOCATIONS = "classpath:/,classpath:/config/,file:./,file:./config/*/,file:./config/";

DEFAULT_SEARCH_LOCATIONS が上記の値を指定していることがわかります。上記のコメントは非常に興味深いものですが、うまく翻訳できませんでした。例を通して確認してみましょう。 application.properties と application.yml の優先順位がわかったので、application.properties ファイルを使用してそれを確認するだけです。resources/config (実行パス: classpath:/config/) の下に application.properties があります。

springboot のデフォルトの読み込みパスは何ですか?

#どのポートが現在使用されているかを確認します。

springboot のデフォルトの読み込みパスは何ですか?

は 9092 を使用しています。これは、リソース/構成の優先順位が大きいことを意味します。リソースよりも、つまり classpath:/config/>classpath:/ です。ファイルを見てみましょう:/

springboot のデフォルトの読み込みパスは何ですか?

application.properties ファイルはプロジェクトのルート パスの下に作成されます。開始サーバー ポートは 9093 です。どのポートであるかを見てみましょう。

springboot のデフォルトの読み込みパスは何ですか?

サービスは 9093 を使用し、優先順位は file:/>classpath:/config/>classpath:/ です。ここで、config/my/ パスをプロジェクト パスに追加し、application.properties ファイルを追加します。

springboot のデフォルトの読み込みパスは何ですか?テスト結果は次のとおりです。

#

サービスはポート「9094」で開始され、優先度が file:./config/*/>file:./>classpath:/>classpath:/config/ であることを示し、最後の検証ポイントはfile:/config、これは検証する必要はなく、最も高い優先順位が必要だと思います。したがって、優先順位は高いものから低いものまで、 file:./config/ > file:./config/*/ > となります。 file:./ > classpath:/ > classpath:/config/、平たく言えば、プロジェクト ルート パスの下の config>config/*/ プロジェクト ルート パスの下>プロジェクト ルート パス>classpath:/config>classpath:/

以上がspringboot のデフォルトの読み込みパスは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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