スプリング端における依存性注入DIの豆ソース深さ分析行う方法 - 、分析AutowiredAnnotationBeanPost及びCommonAnnotationBeanPostProcessor(b)は

別の分析@Autowired @resouceは、フィールドノートと最終的に注入プロセスの方法でサポートされている場所を前Cipianは、組み合わせた彼らからのコメントは適切な解像度、適切なスタート依存性注入分析がどのように、

ノート@resouce特殊性のために、それは私の以前のブログ記事を見に推奨されているので(、彼は@resouce使用がCommonAnnotationBeanPostProcessorに維持されているキャッシュに配置されますされたフィールドに対応する情報フィールドを解析し、ここで私は猜测到、それは同様の分析です見出さ@Autowired 注解的解析確かに置かAutowiredAnnotationBeanPost上記で定義されたキャッシュ属性マップ、およびそれがターゲットBeanでインスタンス化されるべきである、すなわち、元のプロパティ【apply_Merged_BeanDefinitionPostProcessors】ポストプロセッサインターフェース方法の併用の呼び出しAutowiredAnnotationBeanPost彼のpostProcessMergedBeanDefinition注釈の論理的完了(メソッド、フィールド具体的には、以下で使用される)の分析その親クラス内のマップ上のキャッシュされたと、)
ここに画像を挿入説明

まず第一に、私は再び依存性注入の多くの方法(注釈ヘクタールの両方を)それをくしてみましょう

  1. 私は、カザフスタンのコンストラクタ・インジェクション以外の角度に必要な构造器注入我举得非常特殊ことはpupulate段階のプロパティではありませんので、パラメトリック構造の方法は、上記ある是不需要加@Autowired 注解的> - 、多くの人々は、上記に追加され、実際には、意味がありませんので、なぜ私が言うべき、
    中1(それが原因のものを用いることができない、@Autowired注釈を見ていない仕上がりに開始するのに便利ですコンストラクタインジェクションインスタンス化ターゲットBeanプロセスによって、
    2 @Autowired注釈は、ターゲットBeanでインスタンス化されているので、これは、プロパティがにpupulateBeanの解決さを設定される前に完了するようになりました!)

依存段噴射は2.pupulateを発生します

このコンストラクタではないことにより、すなわち注射の方法の後、何のパラメータはターゲットBeanインスタンスを達成するように構成されていない、プロパティ噴射ステージは、ターゲットBeanの属性を解析完了する。

そして、、に応じて二つのカテゴリーに分けている、または、@resouce @Autowired注釈を追加する必要があることができる
クラス1:フィールドの上方に配置直接注釈-いわゆるフィールド注入
クラス2:上記の方法に直接アノテーション-また、メソッドが呼び出さ--setter注入

公開された43元の記事 ウォン称賛14 ビュー3565

おすすめ

転載: blog.csdn.net/qq_39965727/article/details/104680012