1. Springとは何かを技術的に整理する

Springは、Javaアプリケーションにおいて

・オブジェクト生成

・依存関係解決

・ライフサイクル管理

をコンテナで一元管理するフレームワークです。

 

Spring MVCは、そのSpringコンテナ上で動作す。Webリクエスト処理専用のサブフレームワークです。

 

2. Spring MVCの構成要素と責務

3. リクエスト処理フロー全体図

Spring MVCの処理は、次のような直列パイプラインです。

重要なのは、DispatcherServlet自身は業務処理を一切行わない点です。

4. DispatcherServletの実際の役割

DispatcherServletは、内部的には次のような処理を行います。

  1. HandlerMappingに問い合わせる
  2. 対応するHandlerを取得
  3. HandlerAdapterに実行を委譲
  4. 戻り値を基にViewを解決

 

DispatcherServletは制御フロー専用クラスであり、ロジックは持たず、すべてを委譲します。

 

5. HandlerMappingとHandlerAdapterの分離設計

HandlerMapping

リクエストURLやHTTPメソッドを基に、処理対象を特定します。

HandlerAdapter

Controllerの実装形式の違いを吸収します。この設計により、Spring MVCは

・アノテーションベース

・インターフェース実装

を同時にサポートできます。

 

6. Controller実行と戻り値の扱い

典型的なControllerは以下のようになります。

この戻り値 "userList"物理パスではなく論理View名です。

 

7. ViewResolverとレスポンス生成

ViewResolverは、論理View名を実際のViewに変換します。

ViewはModelを参照し、最終的なHTTPレスポンスを生成します。

 

この分離により、

・表示技術の差し替え

・View構成の変更

がControllerに影響しません。

 

Springとは何かを理解するうえで重要なのは、DIやアノテーションの知識ではなく、処理構造の理解です。Spring MVCはDispatcherServletを中心に、HandlerMapping・HandlerAdapter・ViewResolverが直列に連携する疎結合な処理パイプラインとして設計されています。この流れを正確に把握できれば、拡張ポイントやトラブルの原因も論理的に追えるようになります。Spring MVCは魔法ではなく、明確に分解可能な構造体です。