Webコンテナ(春MVC)

A ,,,コンテキスト間springmvc区別(mlWebApplicationCont)スプリング・コンテキスト(コンテキストのWebApplication)Webコンテキスト(サーブレットコンテキスト)。

コンテキスト:それは単にコンテナ、プロファイルとして理解することができます

子供が父を呼び出すことができるので、Webコンテキストのターゲットとするユーザーは、すべてのWebアプリケーションで、対象物のバネコンテキストは、単一のWebアプリケーションで、春のMVC対象物は、春のコンテキストから継承された単一のWebアプリケーション(サブコンテキスト春のコンテキストの春のMVCフレームワークであります物事、逆に、)することはできません。

私はweb.xmlの話をしましょう
:その設定ファイルweb.xmlには2つのノードを読んで読んでます(Tomcatのような)コンテナは、1. Webプロジェクトを<listener></listener>し、<context-param></context-param>
コンテナのServletContext(コンテキスト)を作成し、次に2。グローバルでは、アプリケーション内で共有しました。
例えば:
<context-param>
<param-name>key</param-name>
<param-value>value123</param-value>
</context-param>
<listener>
<listener-class>com.brolanda.contextlistener.listener.ContextListenerTest</listener-class>
</listener>

3.容器<context-param></context-param>キーと値のペアへとServletContextへ。

前記コンテナが作成する<listener></listener>、すなわち、クラスのインスタンスをリスナーを作成する。リスナーはのServletContextListenerからインタフェースを実装しなければならない
初期化メソッドをリスニング(ServletContextEventイベント)がcontextInitializedう5.。この過程でServletContext = ServletContextEvent.getServletContext();
、「コンテキストのparamの値」= ServletContext.getInitParameter(「コンテキスト-paramキーの」);
6.コンテキストのparamを求め、この値の後、あなたが注目のいくつかの操作を行うことができ、この時点ますWEBプロジェクトは完全に完全に開始されていません。このアクションは、以前のサーブレットのすべてよりなります。つまり、この時点で、あなたは<context-param>あなたが完全にWEBプロジェクトを開始する前に、実行する操作を行うための鍵となります。ウェブを.xmlファイルは、2つのパラメータを定義してもよい:一つはグローバルパラメータ(のServletContext)は、によってれる<context-param></context-param>サーブレットパラメータサーブレットで宣言することにより、<init-param> <param-name>param1</param-name> <param-value>avalible in servlet init()</param-value> </init-param>缶のgetServletContext()getInitParameter(「コンテキスト/最初のパラメータサーブレット。 PARAM」)を与えるために第二のパラメータは、INITサーブレット()メソッドでthis.getInitParameter(「PARAM1」)によって達成することができます。

二つのバネ配置コンテキスト容器

  ServletContextListenerスプリングは、私たちのためのインタフェースのコンテキスト初期化リスナーの実装を提供します。org.springframework.web.context.ContextLoaderListener

  春には、私たちが提供するIOCのコンテナのために、我々は、コンテナのプロファイルを指定して、リスナーによって初期化され、コンテナを作成する必要があります。contextConfigLocationをパラメータ名として:それは必ず使用して、コンフィギュレーション・ファイルのアドレスとファイル名を指定する必要があります。
   さて、のServletContextサーブレットコンテナはその春、初期化され、のContextLoaderListenerは、それをどのように初期化しましたか?
    図1に示すように、サーブレットコンテナが開始は、アプリケーションのための「グローバルコンテキスト」を作成する:のServletContext 2、容器は、初期化WebApplicationContextコンテキスト(すなわち、IOCコンテナ)で設定のContextLoaderListenerのweb.xmlファイルを呼び出し、IOCにロードコンテキストPARAM指定されたプロファイル情報でありますコンテナ。WebApplicationContextのweb.xml初期設定されているキーと値のペア3、サーブレットコンテナとして記憶のServletContextでのServletContext、及び負荷構成情報をコンテキストに設けられ、自身のコンテキスト情報を初期化します。親へのWebApplicationContext。図4に示すように、その後の初期化サーブレットの全ては、その親コンテキストへのコンテキスト、WebApplicationContextを初期化する、作成するための3つのステップの方法に従っています。
書き込み絵は、ここで説明しました

第三に、
容器の他のサーブレット。

私たちは春だけのサービスに、共通のコンテキストとしてwebApplicationContext初期化し、Webコンテナ、プロセスを開始する知っているので、第四には、DAOおよびその他の構成情報はここでロード、およびサーブレットコンテキスト情報は、独自の負荷を必要としません。したがって、アセンブリはapplicationContext.xmlを@Controller注釈を除外します、とコメントプロファイルは@Controller DispatcherServletの負荷がアセンブリのDispatcherServletの検索を容易にし、制御するためにロードされます。

参考:http://www.it165.net/pro/html/201502/33644.html
http://blog.csdn.net/crazylzxlzx/article/details/53648625
http://blog.csdn.net/honghailiang888/記事/詳細/ 53320519

これら2に類似のps個人的理解。ない場合は、正しい私の批判を喜ば

公開された21元の記事 ウォンの賞賛6 ビュー30000 +

おすすめ

転載: blog.csdn.net/soulonlyhlh/article/details/78009407