Spring MVCの動作原理
Spring MVCの動作メカニズムはおおよそ次のとおり。
- アプリケーションの起動時に、Servletコンテナ(例:Tomcat)はweb.xmlファイルを読み込み、そこに書かれている設定情報を解析します。
- web.xmlファイルにてDispatcherServletの設定を行い、Spring MVCフレームワークのフロントコントローラーの役割を果たさせます。
- DispatcherServletがロードされると、Springアプリケーションコンテキスト(ApplicationContext)を作成し、グローバル変数として保持します。Springアプリケーションコンテキストは、Spring MVCフレームワーク全体の中核であり、すべてのコンポーネントの管理と調整を行います。
- Spring アプリケーションコンテキストのロード時に、(springmvc-servlet.xml など)の設定ファイルが読取・解析され、設定ファイルの情報を基に対応する Bean が作成され、Spring アプリケーションコンテキストに登録されます。
- 設定ファイルにハンドリングマッピングが設定されています。これは、リクエストを対応するコントローラにマップするためのものです。
- DispatcherServletはリクエストのURLに応じて、リクエストが到着するとHandlerMappingによって対応するコントローラを検索します。
- コントローラーはリクエストを処理し、処理結果データとビュー名を格納したModelAndViewオブジェクトを返します。
- DispatcherServletは、モデルとビューオブジェクトをビューリゾルバ(ViewResolver)に渡し、ビュー名に基づいて対応するビューを見つけ、モデルのデータをビューに渡します。
- 最後に画面はクライアントに表示する HTML ページを作成し、返します。
Spring MVCの起動シーケンスとしては、Servletコンテナによるweb.xml設定ファイルの読み込み、DispatcherServletとSpringアプリケーションコンテキストの作成、設定ファイルの解析と対応するBeanの登録、HandlerMappingとビューリゾルバの設定、リクエストの処理とビューの返還などの段階があります。これらの段階が連携することで、Spring MVCフレームワークが起動して動作しています。