春5.xのソース旅行四〇から一BeanFactoryPostProcessors拡張ポイントとBeanPostProcessor

図劣ら

ここに画像を挿入説明

コンテナは初期化呼び出すとinvokeBeanFactoryPostProcessors方法をBeanDefinitionRegistryPostProcessorしてBeanFactoryPostProcessor、主に内部メソッドを呼び出してConfigurationClassPostProcessor処理を行うために、構成ファイルを、記事では、主に出て拡張することができます記載されている場所のいくつかに、避ける、それ以前について話をしています例えば、我々は非常に先頭を拡張することができます。

BeanDefinitionRegistryPostProcessor

最初はそれが最初の拡張定義から呼び出します。
ここに画像を挿入説明
例えば、私が登録したいbean定義を、それは非常に始まるレジスタ、外出先では以下となります。
ここに画像を挿入説明

PriorityOrdered且BeanDefinitionRegistryPostProcessor

その後、実行はここを含め、優先順位によって順序付け来て取得しますConfigurationClassPostProcessor、設定ファイル、我々はすべての中にパッケージ登録するコンテナクラス解析するために行くだろうbean、それに定義されたレジスタを。
ここに画像を挿入説明

注文且BeanDefinitionRegistryPostProcessor

ロジックは、ちょうどあなたが缶を定義しない限り、デフォルトでは、内部プロセッサを持っていないだろう、重い行きます。
ここに画像を挿入説明

残りBeanDefinitionRegistryPostProcessor

最後に、残り:
ここに画像を挿入説明

invokeBeanFactoryPostProcessors

その後、我々は、カスタマイズの実現の先頭に行くBeanFactoryPostProcessorsと、ちょうど登録BeanFactoryPostProcessorプロセッサの種類postProcessBeanFactory方法:
ここに画像を挿入説明

すべてのBeanFactoryPostProcessor最後の治療

その後になりますBeanFactoryPostProcessor私たちのカスタムまたはいくつかの内部クラスがされているため、買収のタイプ、そして実行するためにBeanFactoryPostProcessor、自己のタイプはから定義することができるBeanDefinitionRegistryPostProcessorリストに追加し、それが正面を処理しませんでした、我々はまた、優先度の高い順に、いったんバックに対処しなければなりませんでしたA。

ここでは、プラント関連、あなたが内側に登録して動作可能でプロセッサを処理しているbean工場。

registerBeanPostProcessors注册BeanPostProcessor

ここに画像を挿入説明
ここでは、すべてでBeanPostProcessor見つかったインスタンス化し、容器に登録を。
登録の前に:

ここに画像を挿入説明
登録後:
ここに画像を挿入説明
2は、内部のデフォルトは、カスタムされている61。

ApplicationContextAwareProcessor初期化プロパティを設定するために使用される前に:
ここに画像を挿入説明
ImportAwareBeanPostProcessor主にされCGLIBたときに、エージェントクラスを設定する設定beanFactory:プロパティ、ImportAware着信メタデータ注釈の対象
ここに画像を挿入説明
ここに画像を挿入説明
CommonAnnotationBeanPostProcessorとはAutowiredAnnotationBeanPostProcessorされている特性と注入の方法の主な仕事である:
ここに画像を挿入説明
ApplicationListenerDetectorリスニングの主な仕事であります登録はあなたがあれば、されbeanているApplicationListener単語の種類:
ここに画像を挿入説明
BeanPostProcessorChecker権利を作成するために、プロセッサの数をチェックするために使用されます。
ここに画像を挿入説明

さて、今日ここに、私たちは自分自身の学習、限られた容量を理解し、偉大な神は見スプレーしないで、言い訳してください、助けの調査に希望と理解しています。

公開された235元の記事 ウォン称賛74 ビュー30000 +

おすすめ

転載: blog.csdn.net/wangwei19871103/article/details/105180132