Springboot自動アセンブリのフローチャートとソースコード

ここに画像の説明を挿入
このプロセスは 2 つの部分で構成されます。 prepareContext + freshContext
1.
prepareContext 1.1 ロード メソッド、起動クラスを beanDefinition としてカプセル化し、bedefinitionMap に登録します。
2.
freshContext 2.1 invokeBeanFactoryPostProcessor
2.1.1 解析メソッド、起動クラスのアノテーションを再帰的にスキャンし、basePackage を決定します。 、コンポーネントのアノテーション変更をロードします。クラス
2.1.2 のスキャンと解析 @Import は、自動的にアセンブルする必要があるクラス情報をロードし、最終的に beanDefinitionMap に登録します。

ソースコードの最初の部分

メインメソッド: prepareContext –>load()
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入

ここに画像の説明を挿入

ソースコードの 2 番目の部分

メインメソッド:refreshContext()—>refresh()—>invokeBeanFactoryPostProcessors()—>parse()
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

すべての登録情報が準備されました、 // 残りの (非遅延初期化) シングルトンをすべてインスタンス化します。finishBeanFactoryInitialization(beanFactory);リフレッシュのメソッドは
、すべての非遅延ロード Bean リフレクションを作成します...

最後に、SpringBoot スタートアップ クラスのアノテーションを見てみましょう。

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/GiantCrocodile/article/details/124799016