SpringフレームワークのDispatcherServletとContextLoaderListenerの違いは何ですか? Springフレームワークを使用しているときに両方をweb.xmlに設定する必要がありますか?SpringのDispatcherServletとContextLoaderListener
答えて
ルートWebApplicationContextは、アプリケーション全体で共有されるSpringアプリケーションコンテキストです。
DispatcherServletインスタンスには、実際にはWebApplicationContextという独自の があります。
アプリケーション内に複数のDispatcherServletインスタンスを持ち、それぞれ独自のWebApplicationContextを持つことができます。あなたは、ルートWebApplicationContextと 複数DispatcherServletsを持っている場合、DispatcherServletsは ルートWebApplicationContextを共有するよう
ルートWebApplicationContextは、アプリケーション 間で共有されます。
しかし、簡単なSpring MVCのアプリケーションのために、1にもルートがをWebApplicationContext持ってする必要はありません状況を持つことができます。 DispatcherServletはそれ自身のWebApplicationContextを持ちますが、実際には親ルートWebApplicationContextを持つ必要はありません。
したがって、どのBeanをルートWebアプリケーションコンテキストに入れる必要があり、どのBeanをDispatcherServletのWebアプリケーションコンテキストに入れる必要がありますか? サービスやDAOなどの一般的なBeanはルートWebアプリケーションコンテキストで動作し、コントローラなどのWeb固有のBeanはDispatcherServletのWebアプリケーションコンテキストに含まれています。
AFAIK各DispatcherServlet
はWebApplicationContext
となります。デフォルトでは、DispatcherServlet
は、WEB-INF
フォルダの下の[appname]-servlet.xml
という名前のスプリング構成ファイルを探します。
DispatcherServlet
を設定する必要がありますか?
はい、すべての要求がルーティングされるので、すべての春のアプリケーションはDispatcherServlet
を設定する必要があります。要求を処理するためのコントローラクラスの適切なメソッドを決定します。コントローラーが論理ビューと共にmodel
を返すと、DispatcherServlet
は(通常はJSP)を解決し、最終的にブラウザーで表示されるビューにmodel
データを渡します。
ContextLoaderListener
を設定する必要がありますか?
いいえ、これは必須ではありません。 Springアプリケーションは、ContextLoaderListener
を使わずに暮らすことができます。
なぜ
ContextLoaderListener
が必要ですか?
通常、マルチティアアプリケーションをビルドする場合、すべてのBeanを1つの設定ファイル[appname]-servlet.xml
に混乱させたくありません。たとえば、spring security
をsecurity-context.xml
に含めるには、サービスレイヤーに属するすべてのBeanをapplicationContext.xml
に設定し、同様にDAOレイヤーに属するBeanをdao-context.xml
に設定する場合もあります。だから、これらのすべてのBeanを別のコンテキストファイルで設定するときは、springが覚えておいて覚えておく必要があります。 ContextLoaderListener
は、他のすべてのコンテキストファイルを認識するのに役立ちます。
希望すると便利です。
- 1. ContextLoaderListenerとDispatcherServlet
- 2. SpringブートのDispatcherServletとweb.xml
- 3. Spring 3.0 junit test DispatcherServlet
- 4. Spring DispatcherServlet複数のインスタンス
- 5. Springセッションのセキュリティコンフィグレーションと複数のcontextLoaderListenerクラスの例外
- 6. カスタム404 Spring DispatcherServletを使用して
- 7. メインServletContainerとDispatcherServletの間で同じSpringコンテキストを共有
- 8. どのような設定により、ContextLoaderListener(ルートコンテキスト)がDispatcherServletのコンテキストよりも「親」コンテキストになりますか?
- 9. 春のDispatcherServlet
- 10. 私のspringプログラムは、dispatcher-servlet.xmlを使って、ContextLoaderListenerとapplicationcontext.xmlを使わずに実行できますか?
- 11. ContextLoaderListenerのアプリケーションコンテキストパスを変更する方法
- 12. DispatcherServletによるAjaxリクエスト
- 13. RESTスタイルのURLのDispatcherServletの設定
- 14. SpringBootServletInitializerのDispatcherServletはどこですか?
- 15. HTTPステータス500 - しかし、再びのDispatcherServlet
- 16. 春3.0 REST実装のDispatcherServletがマッピング
- 17. 警告:名前が 'spring-dispatcher'のDispatcherServletのURI [/ SpringMVCHelloWorld /]のHTTP要求のマッピングが見つかりません
- 18. web.xmlにSpringが含まれていなくてもSpringのContextLoaderListenerはどのように動作していますか?
- 19. web.xmlのContextLoaderListenerの前にサーブレットをロードする方法は?
- 20. 名前が 'spring-dispatcher'のDispatcherServletのURI [/ FirstSpringMVCProject/welcome]を持つHTTPリクエストのマッピングが見つかりません
- 21. 名前が 'dispatcherServlet'のDispatcherServletでURI [/app.js]を持つHTTP要求のマッピングが見つかりません
- 22. Spring MVC DispatcherServletでURI/x /が指定されたHTTPリクエストのマッピングが見つかりません
- 23. ContextLoaderListenerをServletContextに追加する目的は何ですか?
- 24. Spring、Spring SecurityとSpring Webflowの互換性
- 25. 警告:「spring」という名前のdispatcherservletでuri [/ Authentication /]を使用したhttp要求のマッピングが見つかりません
- 26. Springディスパッチャサーブレットがindex.htmlを見つけることができません。 DispatcherServletのURI []を持つHTTPリクエストのマッピングが見つかりません
- 27. DispatcherServlet - Rooプロジェクトでコンテキストの初期化に失敗しました
- 28. なぜ私のapplicationContext.xmlがDispatcherServletに必要ですか?
- 29. <Web.xmlのDispatcherServlet名> -servlet.xmlが必要です
- 30. 注釈ベースの設定でDispatcherServletを定義しますか?