SpringBoot自動構成プロセスの紹介

自動構成とは何ですか

以前は、Spring + mybatis フレームワークを統合する場合、sqlSessionFactory などの多くの Bean を追加する必要がありました。
現在は springboot がそれを行ってくれるので、対応するスターターを導入するだけで済みます。
ここに画像の説明を挿入
ここに画像の説明を挿入
springBoot は、mysql、mogondb 関連の操作など、現在 100 以上の Bean の設定に役立ちます。

一つ一つインポートする必要はありません。ここに画像の説明を挿入

単一のインポートは非​​効率すぎます。

一括インポートを実現するにはどうすればよいですか?

@import(AutoConfigurationImportSelector.class) は、
ここに画像の説明を挿入
AutoConfigurationImportSelector.selectImports メソッドを通じて構成クラス コレクションをインポートします。

もちろん、他の jar に構成クラスが存在することもありますが、すべてがスターターにある必要はありません。

他の jar で springBoot に積極的に通知し、それが構成クラスであることを示す必要があります。ファイル パスは meta-inf/spirng.factories です。
ここに画像の説明を挿入

ステップを見つける

1 jar 検索ファイル

meta-inf/sping.factories

2 鍵を見つける

ここに画像の説明を挿入
value は構成クラスです。
ここに画像の説明を挿入

4 重複排除

ここに画像の説明を挿入

5 classLoader がクラスをロードします - 自動構成クラス名を見つけます

ここに画像の説明を挿入

6 無関係な構成クラスをフィルタリングする

まず依存関係を調べ、pom 内に依存関係があるかどうかを確認し、次にキー クラスがあるかどうかを確認します。
ここに画像の説明を挿入
ここに画像の説明を挿入
135 の構成クラスがあり、無関係な構成クラスも多くあります。
ここに画像の説明を挿入

spring-autoconfigure-metadata.propertes ファイルを通じて

最初に他の JVM で Spring コンテナーを開始すると、速度が遅くなります。

他の

springBoot3.0 以降は、gravVM テクノロジーが使用され、コンパイル時に Bean がスキャンされます。後で開始する場合は、Bean を直接登録してロードするため、再度スキャンする必要はありません

おすすめ

転載: blog.csdn.net/qq_39463175/article/details/129787257