DipatcherServletの依存関係

SpringのMVCの肝はDipatcherServletです。以下。DipatcherServletと使用されるBeanとの関係を調べてみました。
DipatcherServletは次の7つのBeanに依存している。これらはすべてapplication contextの設定ファイルから指定できるBeanでいくつかの実装を持つ。ちなみに(s)付のものはListで管理されているので複数指定可となっている。DipatcherServletはLoadされるときに、WebApplicationContextから下記Beanの実装を取得してメンバ変数に格納し、clientからアクセスがある度にdoService()メソッドの中でそのメンバ変数を使いながら処理を行う。

MultipartResolver
Defaultはなし。Jakarta Commons FileUploadを使う実装などがある。
LocaleResolver
DefaultはAcceptHeaderLocaleResolver。HTTP headerのLoacalを使う。
ThemeResolver
DefaultはFixedThemeResolver。使い方はいまいちわからないが、Viewに表示するMessageに変更を加えられるというようなことらしい。
HandlerMapping(s)
DefaultはBeanNameUrlHandlerMapping。HandlerExecutionChainや HandlerInterceptorと関係する。クライアントからのRequestを実行する際の事前処理や事後処理に関係している?
HandlerAdapter(s)
DefaultはSimpleControllerHandlerAdapterと ThrowawayControllerHandlerAdapterの二つ。ThrowawayControllerHandlerAdapterについては今のところわからない。
HandlerExceptionResolver(s)
Defaultはなし。Exceptionを特定Pageにマッピングする。web.xmlでのmappingよりも柔軟性があるらしい。
ViewResolver
DefaultはInternalResourceViewResolver。Viewの論理名からファイルのパスを解決する。


●メモ

  • namespaceのDefaultはFrameworkServletで"[server-name]-servlet"に設定されている。web.xmlServletのinit-paramで指定も可。
  • Servletのinit-paramはHttpBeanのinit()で何らかの処理がおこなわれている。