1. ホーム
  2. java

[解決済み] SpringにおけるContextLoaderListenerの役割/目的?

2022-04-21 14:35:50

質問

私は学んでいます Springフレームワーク 私のプロジェクトで使用されています。私は ContextLoaderListener のエントリは、私の web.xml ファイルを作成しました。しかし、それが開発者にどのように役立つのか、具体的には分かりませんでした。

の公式ドキュメントでは ContextLoaderListener を開始すると書いてあります。 WebApplicationContext . について WebApplicationContext JavaDocsによると。

Webアプリケーションの設定を行うためのインターフェイスです。



しかし、私は何を達成しようとしているのか理解できません。 ContextLoaderListener を内部で初期化する WebApplicationContext ?

私の理解では , ContextLoaderListener でcontextConfigLocationに指定された値で)Springの設定ファイルを読み込む。 web.xml をロードし、それをパースして シングルトンビーン その設定ファイルに定義されている 同様に プロトタイプビーン をロードするために、同じウェブアプリケーションコンテキストを使用します。そこで、ウェブアプリケーションを ContextLoaderListener そうすることで、事前に設定ファイルを読み、解析し、検証し、依存関係を注入したいときにはいつでも、遅滞なくそれを実行することができるのです。この理解は正しいでしょうか?

どのように解決するのですか?

そのとおりです。 その ApplicationContext は、Springビーンズが住んでいる場所です。 の目的は ContextLoaderListener は2つあります。

  1. のライフサイクルを縛るために ApplicationContext のライフサイクルに ServletContext

  2. の作成を自動化するために ApplicationContext これは便利な機能で、作成するための明示的なコードを書く必要はありません。

もう一つ便利なのは ContextLoaderListener を作成することです。 WebApplicationContext へのアクセスを提供し ServletContext を経由して ServletContextAware ビーンズと getServletContext メソッドを使用します。