[Spring Boot] Spring Boot システム設定 - システム設定ファイル

システム構成ファイル

Spring Boot のシステム構成ファイル (application.properties および application.yml 構成ファイルの使用法、YML 構成ファイルと Properties 構成ファイルの違いなど) について、最後に Spring Boot の起動パターンを変更する方法を紹介します。

1.アプリケーションのプロパティ

Spring Boot は、2 つの異なる形式の構成ファイルをサポートしています。1 つはプロパティで、もう 1 つは YML です。Spring Boot は、デフォルトで application.properties をシステム構成ファイルとして使用します。プロジェクトが正常に作成されると、デフォルトで application.properties ファイルがリソース ディレクトリに生成されます。このファイルには、Spring Boot プロジェクトのグローバル構成が含まれています。Spring Boot でサポートされるすべての構成項目 (ポート番号、データベース接続、ログ、起動パターンなど) を application.properties ファイルで構成できます。次に、Spring Boot プロジェクトの開発プロセスにおける構成に関する知識をいくつか紹介します。

(1) 基本文法

Spring Boot プロジェクトが正常に作成されると、application.properties ファイルがデフォルトのリソース ディレクトリに自動的に作成されます。使い方も非常に簡単で、設定形式は次のとおりです。

# 服务器端口配置
server.port=8081

上記の例では、アプリケーションの起動ポートが構成されています。この項目を設定しない場合、デフォルトでポート 8080 が使用されます。他のポートを使用する必要がある場合は、server.port=8081 でシステム起動ポートを変更します。

さらに、プロパティ ファイル内の構成項目の順序が正しくない場合もありますが、構成ファイルを明確で読みやすいものにするために、次のように関連する構成項目をまとめることをお勧めします。

ここに画像の説明を挿入
上記の例では、thymeleaf テンプレートに関連する構成がまとめられており、明確に見え、thymeleaf のすべての構成を簡単にすばやく見つけることができます。

(2) 設定ファイルの読み込み順序

Spring Boot プロジェクトの構成ファイルは、デフォルトでリソース ディレクトリに保存されます。実際、Spring Boot システムが起動すると、次の 4 つの異なるパスにある構成ファイルが読み取られます。

1) プロジェクトのルート ディレクトリの下にある config ディレクトリ。

2) プロジェクトのルート ディレクトリ。

3) クラスパス下の config ディレクトリ。

4) クラスパスディレクトリ。

Spring Boot は、これら 4 つの場所からすべての主要な構成ファイルをロードし、これら 4 つの場所にある application.properties ファイルの優先順位は、上記の順序で低くなります。これら 4 つのファイルに同じ属性が存在する場合、優先順位の高いファイルが優先されます。

(3) デフォルトの設定ファイル名を変更する

プロジェクトの構成ファイルの名前は application.properties でなければならないのではないかと疑問に思う人もいるかもしれません。もちろんそうではありません。プロジェクトのスタートアップ クラスを変更し、SpringApplicationBuilder クラスの property() メソッドを呼び出すことで、構成ファイル名をカスタマイズできます。サンプルコードは次のとおりです。

ここに画像の説明を挿入

上記の例では、Spring Boot プロジェクトが起動してロードされると、名前が変更された設定ファイルがデフォルトで読み込まれ、デフォルトでロードされる application.yml ファイル名を変更できます。

2.アプリケーション.yml

application.yml は、yml という接尾辞が付いた YAML (YAML はマークアップ言語ではありません) を使用する構成ファイルです。YMAL は XML などのマークアップ言語に比べて構造が明確で読みやすく、プロパティ設定ファイルとしての使用に適しています。

(1) 基本文法

YML の基本構文は、key: (space) value のキーと値のペア形式であり、コロンの後にスペースを追加する必要があります。属性の階層関係はスペースのインデントによって制御され、データ列が左揃えである限り、属性はすべて同じレベルにあります。具体的な形式は次のとおりです。

ここに画像の説明を挿入

上記の例では、システムのログ レベルやファイル パスなどの属性がカスタマイズおよび構成されます。ロギングの下に、レベルとファイルという 2 つのサブ構成項目があることがわかります。

YML ファイルの形式はシンプルで直感的ですが、その形式には高い要件があるため、YML 構成ファイルを使用する場合は次の点に注意する必要があります。

1) 属性値とコロンの間にはスペースが必要です。name: Weiz が正しい場合、name: Weiz を使用するとエラーが報告されます。
2) 属性間のインデントと位置合わせに注意してください。
3) インデントにはタブは使用できません。スペースのみが使用できます。
4) 属性と値は大文字と小文字が区別されます。

(2) データ型

YML ファイルはデータ中心であり、配列、JSON オブジェクト、マップなどの複数のデータ形式をサポートしているため、構成ファイルとしての使用に適しています。

(1) 通常の値(数値、文字列、ブール値)

通常のデータは、k:v キーと値のペアの形式で直接書き込まれます。通常の値の型または文字列には、デフォルトで一重引用符や二重引用符を追加する必要はありません。

もちろん、二重引用符 ("") を使用して文字列内の特殊文字をエスケープすることもできます。特殊文字がエスケープされた後は、次のように独自の意味を表します。

name: "zhangsan \n lisi"

上記の例では次のように出力されます。

zhangsan
lisi

一重引用符 ('')を使用しても特殊文字はエスケープされません。すべての文字は通常の文字として、文字列データとして扱われます。次に例を示します。

name: 'zhangsan \n lisi'

上の例では、zhangsan \n lisi が出力されます。「\n」文字は改行としてエスケープされずに通常の文字列として扱われます。

(2) オブジェクト、マップ(プロパティと値)

オブジェクトも k:v キーと値のペアの形式で表示されますが、各属性とオブジェクトの値の関係は改行とインデントによって記述されます。サンプルコードは次のとおりです。

person:
	lastName: zhangsan
	age: 20

インライン記述方法を利用すると、オブジェクトのプロパティや値をJSON形式で記述することができます。具体的な記述方法は以下の通りです。

person: {
    
    lastName: zhangsan, age: 20}

(3) 配列(リスト、セット)

配列は配列内の要素を「-value」の形式で表し、具体的な書き方は以下の通りです。

persons:
 -zhangsan
 -lisi
 -wangwu

インラインで記述する方法もあり、配列は角括弧形式を使用しており、具体的な記述方法は以下の通りです。

persons: [zhangsan, lisi, wangwu]

基本的なデータ型のサポートに加えて、YML ファイルはオブジェクト、マップ、JSON、配列などの形式もサポートしているため、追加の変換を行わずに必要なデータ型を構成ファイルで直接定義できることがわかります。これが、プログラマーが application.yml を使用することを好む理由の 1 つです。

3. プロパティと YML 設定ファイルの違い

Spring Boot の構成ファイルには、プロパティまたは YML の 2 つの形式があります。一般に、この 2 つは自由に使用でき、使用習慣に応じて適切な構成ファイル形式を選択できます。この 2 つはまったく同じですか? 確かにそうではありません。YML 構成ファイルとプロパティ構成ファイルの違いは次のとおりです。

1) YML ファイルはデータ中心であり、データのサポートと表示に非常に適しています。

2) Properties ファイルの形式要件はそれほど厳密ではありませんが、YML ファイルは階層関係を制御するためにスペースのインデントを使用するため、形式の要件が比較的高く、インデント形式が間違っていると間違いが発生しやすくなります。 。

3) プロパティ ファイルは @PropertySource アノテーションをサポートしますが、YML ファイルはサポートしません。

4) YML ファイルはマルチドキュメント ブロックの使用をサポートしており、非常に柔軟に使用できます。

5) プロパティ設定は YML ファイルよりも優先されます。YML ファイルはプロパティ ファイルよりも前にロードされるため、2 つのファイルの構成が同じである場合、後でロードされるプロパティの構成によって前の YML の構成が上書きされます。

4. 実戦:システムの起動パターンをカスタマイズ

Spring Boot プログラムが起動すると、コンソールには文字列からなる Spring シンボルの起動パターン (バナー) とバージョン情報が出力されることがわかります (下図を参照)。

ここに画像の説明を挿入

Spring Boot に付属する起動パターンはカスタマイズできますか?

答えは「はい」です。次の例は、Spring Boot の起動パターンをカスタマイズする方法を示しています。

ステップ 01プロジェクトのリソース ディレクトリに新しい Banner.txt を作成します。サンプル コードは次のとおりです。

ここに画像の説明を挿入
上記の構成では、${} は、Spring Boot のバージョン、アプリケーションのバージョン、アプリケーション名、その他の情報など、application.properties 構成ファイル内の関連する構成情報を取得するために使用されます。

${AnsiColor.BRIGHT_RED}:设置控制台中输出内容的颜色,可以自定义,具体参考org.springframework.boot.ansi.AnsiColor。
${application.version}:用来获取MANIFEST.MF文件中的版本号,这就是在Application.java中指定SpringVersion.class的原因。
${application.formatted-version}:格式化后的{
    
    application.version}版本信息。
${spring-boot.version}:Spring Boot的版本号。
${spring-boot.formatted-version}:格式化后的{
    
    spring-boot.version}版本信息。步骤02 在application.properties中配置banner.txt的路径等信息。

ステップ02 application.propertiesにbanner.txtのパスなどの情報を設定します。

ここに画像の説明を挿入

上記の設定では、アプリケーションにbanner.txtファイルのパス、アプリケーションのバージョン、Spring Bootのバージョンなどを設定します。

ステップ 03プロジェクトを開始し、図に示すように、変更したスタートアップ バナー パターンが有効かどうかを確認します。

ここに画像の説明を挿入

システムが出力する起動ログから、システムの起動パターンがカスタム起動パターンになっている、つまりSpring Bootのデフォルト起動パターンがカスタム起動パターンに変更されていることがわかります。

Spring Boot は、バナー パターンを定義するための GIF、JPG、および PNG 形式の画像ファイルの使用もサポートしています。もちろん、画像はコンソールに直接出力されませんが、画像内のピクセルは解析され、ASCII エンコード文字に変換されてからコンソールに出力されます。

おすすめ

転載: blog.csdn.net/weixin_45627039/article/details/131686093