BeanFactoryの作成プロセス
1つは、BeanFactoryサブプロセスを取得する
タイミング図は以下の通りです
この記事では、アシスタントVXを追加する必要がある学生の「SpringAdvanced SourceNotes」を参照しています:C18173184271無料アクセス
2つ目は、BeanDefinitionの読み込み分析と登録サブプロセスです。
1.このサブプロセスには、次の主要なステップが含まれます
リソースの配置:BeanDefinition
適切なリソースの配置プロセスを指します。一般的に言えば、Javabean
情報を定義するXMLファイルを見つけて、それをResourceオブジェクトにカプセル化することです。
BeanDefinitionのロード:ユーザー定義のデータ構造はJavabean
、IoCコンテナの内部データ構造として表されBeanDefinition
ます。
BeanDefinitionをIoCコンテナに登録します
2.プロセス分析
1 STEP:サブプロセスエントリAbstractRefreshableApplicationContext#refreshBeanFactory
における方法
ステップ2:ターンコールの複数のクラスloadBeanDefinitionsメソッド- > AbstractXmlApplicationContext
- > AbstractBeanDefinitionReader
- >XmlBeanDefinitionReader
まで行うのdoLoadBeanDefinitions方法ステップ3:我々は、観察に焦点を当てるクラスregisterBeanDefinitions方法は、重負荷の時間中に生成呼び出し、ここで最後を見つけます。2つの領域に焦点を当てます。createRederContextメソッド。これはregisterBeanDefinitionsメソッドのクラスです。最初にcreateRederContextメソッドを入力すると、Springが最初の初期化を完了したことがわかります。XmlBeanDefinitionReader
XmlBeanDefinitionReader
DefaultBeanDefinitionDocumentReader
NamespaceHandlerResolver
私たちは、その後、入力registerBeanDefinitions方法を追跡し、呼び出すためにDefaultBeanDefinitionDocumentReader#registerBeanDefinitions方法を。
入力doRegisterBeanDefinitions方法を。
入力parseBeanDefinitions方法を。
入力parseDefaultElement方法を。
入力processBeanDefinition方法を。
この時点で、登録プロセスは終わりました。これらの構造的編成に基づいてBeanDefinition
、オブジェクトをマップに追加した後です。このマップの定義はで見ることができますBeanFactory
Map
BeanDefinition
DefaultListableBeanFactory
/** Map of bean definition objects, keyed by bean name. */
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>(256);
3.タイミング図
このフルバージョンの「SpringAdvancedSource Notes」が必要な場合は、私の記事をサポートするだけで済みます。
多くのサポート、あなたは無料で情報を得ることができます-3年連続で(約束:100%無料)
クイックスタートチャンネル:アシスタントVXを追加:C18173184271無料で入手!誠意あふれる!!!
春のインタビュー特集記事はこちら!!!