2016-06-24 6 views
1

IOCコンテナはSpring MVCで使用されていますが、1つ以上のコンテナをどのように使用できますか?Spring MVCのIOCコンテナ

私は、スプリングを使用して複数のIOCコンテナを使用できることを知っています。しかし、Spring MVCでも同じことができますか?

答えて

2


は、どのような目的のためにコンテナが使用されます。

Springコンテナは、Springフレームワークのコアです。コンテナは、オブジェクトを作成し、それらを結線し、構成し、作成から破棄までの完全なライフサイクルを管理します。 Springコンテナは、依存関係注入(DI)を使用して、アプリケーションを構成するコンポーネントを管理します。これらのオブジェクトはSpring Beanと呼ばれます。 コンテナは、提供された構成メタデータを読み込んで、インスタンス化、構成、およびアセンブルするオブジェクトに関する指示を受け取ります。構成メタデータは、XML、Javaアノテーション、またはJavaコードのいずれかで表すことができます。次の図は、Springがどのように動作するかを示す高レベルの図です。 Spring IoCコンテナは、Java POJOクラスと構成メタデータを使用して、完全に構成された実行可能なシステムまたはアプリケーションを生成します。 Check for more information here

我々はそれらを使用することができ、我々は1つの以上の容器&を使用することはできSpring MVCのである:
回答は、Spring MVCのプロジェクトに2があり、YES

Typicalyです"containers":ContextLoaderListenerで作成されたものとDispatchServletで作成されたもの。

春のIoCコンテナを表し、インスタンスの設定、および前述の豆を組み立てるための責任があるorg.springframework.context.ApplicationContextインターフェース:

は春のドキュメントを見てください。コンテナは、構成メタデータを読み込んで、インスタンス化、構成、およびアセンブルするオブジェクトについての指示を受け取ります。構成メタデータは、XML、Java注釈、またはJavaコードで表されます。公式ドキュメントから再び

:ウェブMVCフレームワークで

、それぞれのDispatcherServletはすでにルートWebApplicationContextで定義されたすべてのBeanを継承し、独自のWebApplicationContextを持っています。これらの継承されたBeanは、サーブレット固有のスコープ内でオーバーライドできます。また、特定のサーブレットインスタンスに対して新しいスコープ固有のBeanを定義できます。

あなたはのDispatcherServletのWebApplicationContextは、すでにルートWebApplicationContextで定義されたすべてのBeanを継承していることに気づいていましたか?
これらのコンテナがどのように相互に使用されているかをご理解いただけます。

関連する問題