2

Spring ContainerのClassLoaderがどうなっているのか知りたいです。

次に例を示します。必要なすべての jar を含む WAR をデプロイして、Tomcat の Web コンテナー内で Spring コンテナーが開始されるようにします。

私が持っている質問:
1. web-container によって作成された WAR の ClassLoader によって、Spring コンテナー クラス自体が読み込まれるという考えで正しいですか?
2. WAR がアンデプロイされると、Spring コンテナーによってロードされた Class [] (java.lang.Class オブジェクト) はどのようにアンロードされますか。春はそれ自体にクラスローダーを持っていますか? それとも webcontainer が提供するクラスローダーを使用しますか?
3. Spring コンテナーが Bean を継承している場合 (web.xml で parentContextKey を使用)、親 Bean の 1 つに lazy-init=true があり、このデプロイされた WAR によって要求された場合、誰が要求されたクラス オブジェクトをロードおよびアンロードします。豆 ?

前もって感謝します

4

2 に答える 2

0

Webアプリは、Springまたは単にJSP&サーブレットに基づくことができます。また、Tomcatまたはその他のサーブレットコンテナを実行すると、ClassLoaderが使用され、webappフォルダ(Tomcatの場合)にデプロイされたWARからクラスとライブラリが読み込まれます。

于 2012-07-12T08:49:25.820 に答える
0

これらのライフサイクルはすべてコンテナによって維持され、たとえば web.xml で宣言することでコンテナに認識させることができます

RequestContextListener は、「リクエスト」スコープをコンテキストに公開します。
org.springframework.web.context.request.RequestContextListener

そして、コンテナリスナーから拡張されたこのリスナーにより、コンテナはライフサイクルを処理できます。

怠惰な初期化がある場合。Web コンテナーは、クラスパスでクラスを検索する Spring コンテナーへの呼び出しを委任します。

したがって、本質的にライフサイクルが処理されます。これらのライフサイクルを処理する独自のカスタマイズされたリスナーを持つこともできます

それが役立つかどうかを確認してください

于 2012-07-11T18:21:05.430 に答える