独習 SpringBoot 上級編


1. SpringBootの原理分析

1. SpringBootの自動設定

1.1、条件

ConditionはSpring 4.0で追加された条件判定機能であり、Beanオペレーションの選択生成を実現する。

① 条件クラスを定義します。カスタム クラスは、Condition インターフェイスを実装し、matches メソッドを書き換え、matches メソッド内で論理判定を実行し、ブール値を返します。matches メソッドには 2 つのパラメータがあります。
• context: プロパティ値、クラスローダー、BeanFactory などを取得できるコンテキストオブジェクト。
• メタデータ: 注釈属性を取得するために使用されるメタデータ オブジェクト。

②判定条件:Beanの初期化時に@Conditional(条件クラス.クラス)アノテーションを使用する
• SpringBootが提供する共通の条件アノテーション:
• ConditionalOnProperty:Beanの初期化前に設定ファイルに対応するプロパティと値があるか判定する
• ConditionalOnClass: 環境が以下であるかどうかを決定します。 Bean は、対応するバイトコード ファイルがある場合にのみ初期化されます。
• ConditionalOnMissingBean: Bean は、環境に対応する Bean が存在しない場合にのみ初期化されます。

1.2. 内蔵Webサーバーの切り替え

SpringBoot の Web 環境はデフォルトで tomcat を組み込みサーバーとして使用しますが、実際 SpringBoot には 4 つの組み込みサーバーが用意されており、選択することができ、簡単に切り替えることができます。
最初の 1 つは構成クラスで、次の 4 つは組み込みサーバーです
ここに画像の説明を挿入

1.3、@Enable* アノテーション

SpringBoot は、特定の機能を動的に有効にするために使用される、Enable で始まる多くのアノテーションを提供します。基本的な原則は、 @Import アノテーションを使用していくつかの構成クラスをインポートし、Bean の動的なロードを実現することです。

1.4、@Import アノテーション

@Enable*基礎となる層は @Import アノテーションに依存して一部のクラスをインポートし、@Import を使用してインポートされたクラスは Spring によって IOC コンテナにロードされます。そして @Import は、
① Bean のインポート
、② 設定クラスのインポート
、③ ImportSelector 実装クラスのインポートの 4 つの使用法を提供します。通常は、設定ファイル内のクラスをロードするために使用されます
。 ④ ImportBeanDefinitionRegistrar 実装クラス。

1.5、@EnableAutoConfiguration アノテーション

• @EnableAutoConfiguration アノテーションは、内部で @Import(AutoConfigurationImportSelector.class) を使用して構成クラスをロードします。
• 設定ファイルの場所: META-INF/spring.factories、この設定ファイルには多数の設定クラスが定義されています。SpringBoot アプリケーションが起動すると、これらの設定クラスは自動的にロードされ、Bean が初期化されます。 • すべての Bean が初期化されるわけではありません。
条件は、条件を満たす Bean をロードするために構成クラスで使用されます

2. SpringBoot監視機構

比較:

Java 監視メカニズム:
SpringBoot の監視メカニズムは、実際には Java によって提供されるイベント監視メカニズムをカプセル化したものです。
Java のイベント監視機構では、次の役割が定義されています。
① イベント:イベント、java.util.EventObject クラスを継承した
オブジェクト ② イベントソース:ソース、任意のオブジェクト オブジェクト
③ リスナー:リスナー、java.util.EventListener インターフェースオブジェクトを実装

SpringBoot 監視メカニズム
SpringBoot は、プロジェクトの開始時にいくつかのリスナーをコールバックします。これらのリスナー インターフェイスを実装し、プロジェクトの開始時にいくつかの操作を完了できます。ApplicationContextInitializer、SpringApplicationRunListener、CommandLineRunner、ApplicationRunner

2、SpringBoot モニタリング

SpringBoot には独自の監視機能 Actuator があり、監視状況、Bean ロード状況、設定プロパティ、ログ情報など、プログラムの内部動作を監視することができます。

ここに画像の説明を挿入
SpringBoot モニタリング - Spring Boot Admin
• Spring Boot Admin は、SpringBoot アプリケーションを管理および監視するためのオープンソース コミュニティ プロジェクトです。
• Spring Boot Admin には、クライアント (Client) とサーバー (Server) の 2 つの役割があります。
• アプリケーションは、Spring Boot 管理クライアントとして Spring Boot 管理サーバーに登録します。
• Spring Boot 管理サーバーの UI インターフェイスは、Spring Boot 管理クライアントのアクチュエーター エンドポイントに監視情報を送信します。

3. SpringBoot プロジェクトのデプロイメント

SpringBoot プロジェクトの開発後、サーバーにデプロイする 2 つの方法がサポートされています:
① jar パッケージ (公式推奨)
② war パッケージ

要約する

Bilibiliのダークホースプログラマーの独学
学習リンク
による 学習教材:
SpringBoot学習教材

おすすめ

転載: blog.csdn.net/TotoroChinchilla/article/details/126134498