ホームページ >バックエンド開発 >Python チュートリアル >スプリングコアコンポーネントの分析

スプリングコアコンポーネントの分析

高洛峰
高洛峰オリジナル
2016-11-02 14:14:561238ブラウズ

Spring コアコンポーネント

Spring には多くのコアコンポーネントがありますが、そのスケルトンは Core、Context、Bean です。

Bean

3つの中で、Beanは核中の核です。 Bean は構成ファイルを通じてオブジェクトを実装し、Spring はオブジェクトのストレージ領域とライフサイクルの割り当てを管理します。依存関係注入を通じて、オブジェクトを指定されたビジネス ロジック クラスに注入できます。これらの注入関係は Ioc コンテナによって管理されます。

したがって、Spring の核となる考え方は、BOP (Bean Oriented Programming)、つまり Bean 指向プログラミングと呼ばれることがあります。

BeanコンポーネントはSpringの org.springframework.beans パッケージで定義されており、次の問題を解決します:

Beanの定義

Beanの作成

Beanの解析

ユーザーはBeanの作成にのみ注意する必要があります。 other どちらのプロセスも Spring によって内部的に完了します。

スプリングコアコンポーネントの分析

1. 全体的なアーキテクチャ

Spring Bean の全体的なアーキテクチャは典型的なファクトリ モデルであり、最上位のインターフェイスは BeanFactory です。 ListableBeanFactory、HierarchicalBeanFactory、および AutowireCapableBean は、Spring の内部オブジェクト処理と変換のデータ制限を区別するためのサブクラスです。

ListableBeanFactory: これらの Bean がリスト可能であることを示します

HierarchicalBeanFactory: これらの Bean に継承関係があることを示します

AutowireCapableBeanFactory: Bean の自動アセンブリ規則を定義します

これらのインターフェイスは、それぞれ Bean コレクション、Bean 関係、および Bean 関係を定義します。

2.Bean定義

Bean定義は主にBeanDefinitionで記述され、階層関係は以下の通りです:

スプリングコアコンポーネントの分析

Springの設定ファイルで定義されたノードは、解析が成功した後、その後のすべての操作が完了するとBeanDefinitionオブジェクトに変換されます。 BeanDefinition オブジェクトで実行されます。

3.Bean 解析

Bean 解析の主なタスクは、Spring 構成ファイルを解析し、最終的に BeanDefinition オブジェクトを生成することです。
解析プロセスは非常に複雑で、構成ファイル内のすべてのタグが含まれます。主な参加クラスは次のとおりです。

スプリングコアコンポーネントの分析

Context

Beanはオブジェクトをラップし、オブジェクトはビジネスに必要なデータを格納します。したがって、これらのデータとそれらの間の関係の存続および動作環境をどのように提供するか (つまり、オブジェクトの状態を保存するか) が、Context が解決する必要がある問題です。コンテキストは実際には Bean 関係のコレクションであり、Ioc コンテナとも呼ばれます。

ApplicationContext は、Context の最上位インターフェースです。階層関係は次のとおりです。

スプリングコアコンポーネントの分析

ApplicationContext は、アプリケーション環境の基本情報を識別できます。 Context の機能を拡張するために 5 つのインターフェースを継承します。そのうち BeanFactory は Bean の作成に使用され、外部リソースにアクセスするための ResourceLoader インターフェースを継承します。

ApplicationContext のサブクラスには主に以下が含まれます:

ConfigurableApplicationContext: ユーザーが情報を動的に構成および変更できるコンテキスト。その中で、AbstractRefreshableApplicationContext が最もよく使用されます。

WebApplicationContext:
ServletContext に直接アクセスできる Web アプリケーション用に用意されたコンテキスト。

要するに、ApplicationContext が完了しなければならない機能は次のとおりです:

アプリケーション環境を識別する

BeanFactory を使用して Bean オブジェクトを作成する

オブジェクト関係テーブルを保存する

さまざまなイベントをキャプチャする

Ioc コンテナとして、Context は責任を負いますSpring Base の他のほとんどの機能に使用します。

Core

Spring は、Core と呼ばれる Bean 間の関係を検出、確立、維持するためのツールのパッケージです。これは実際に必要なユーティリティです。

コアの重要なコンポーネントの 1 つはリソースです。

1. リソースの全体的なレベル

リソースは主にリソースへのアクセス方法を定義します。すべてのリソースはリソース インターフェイスに抽象化されます。階層関係は次のとおりです。

スプリングコアコンポーネントの分析

リソースのパッケージ化。リソースは、InputStreamSource インターフェイスを上方に継承し、すべてのリソースは、InputStream を通じて取得されるため、リソース プロバイダーが保護されます。

リソースの読み込み中。 Resource の下の ResourceLoader インターフェイスでは、すべてのリソース ローダーは、以前の ApplicationContext など、このインターフェイスを均一に実装することで、すべてのリソースをロードできます。

2. Context との関係を確立する

スプリングコアコンポーネントの分析

図に示すように、ApplicationContext は ResourcePatternResolver インターフェイスを通じて ResourceLoader と対話し、リソースを読み込み、解析し、記述します。 ResourcePatternResolver は、他のコンポーネントによる使用を容易にするためにリソースをカプセル化および統合します。

概要

この記事では、Spring スケルトン フレームワークを構成する 3 つのコア コンポーネントとそれらの間の接続、および 3 つの実装原則を理解するための洞察を主に要約します。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。