15

私はSpring MVC Worldではまったく新しいです。今日、私は STS によって生成された単純な「Hello World」の例を勉強しています: ファイル ---> Spring テンプレート プロジェクト ---> Spring MVC プロジェクト

web.xml には、DispatcherServlet の宣言と、それによって処理されるリクエスト マッピングがあります...ここまではすべて問題ありません

web.xml には、コードの次の部分もあります。

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

ContextLoaderListener に関する Spring のドキュメントを読んで、このクラスがリスナーのブートストラップを実行して Spring のルート WebApplicationContext を起動することを読みましたが、正確にはどういう意味ですか?

もう1つの疑問は、コンテキストに渡すcontextConfigLocationパラメーターに関するものです...正確には何ですか? /WEB-INF/spring/root-context.xml ファイルを開くと、構成が含まれていないようです...これは、テンプレート プロジェクトの作成プロセスによって自動的に作成された void 構成ファイルですか? Spring プロジェクトにはどのような構成を含める必要がありますか?

これらのタグを削除しても、プロジェクトは正常に動作するため、この Hello World プロジェクトでは と タグは使用されていないと思います....よろしいですか?

4

1 に答える 1

35

ContextLoaderListenerSpringコンテナを起動するクラスです。基本的に、すべての Spring アプリケーションは、複数の Bean とワイヤリング (相互に依存する Bean の宣言的記述) で構成されます。この記述は歴史的に XML で書かれていました (最近では、注釈、Java 構成、CLASSPATH スキャンなどがあります)。

Spring コンテナーがなければ、Bean は単なる Java クラスであり、Spring 構成ファイルは役に立たない XML ドキュメントにすぎません。ContextLoaderListenerそのファイルを読み取り、クラスを見つけてインスタンス化し、配線します。次に、すべての豆をコンテナに入れます。

さらにContextLoaderListener、アプリケーションのシャットダウン時にコンテキストを閉じます (クリーンアップが必要な場合はすべての Bean をシャットダウンします)。

于 2012-11-30T18:18:58.317 に答える