1.1 SpringMVCの基本機能
1.1.1基本概念
- Spring MVCは、Springシステムの軽量WebMVCフレームワークです。
- Spring MVCのコアコントローラーは、要求を処理し、応答を生成するために使用されます。
- SpringMVCはSpringIOCコンテナーに基づいて実行され、すべてのオブジェクトはIOCによって管理されます。
1.1.23層アーキテクチャでの位置付け
1.1.3Springmvcの利点
シリアルナンバー | 利点 | 説明 |
---|---|---|
1 | 明確な役割分担 | フロントコントローラー(DispatcherServlet)、プロセッサーマッパー(HandlerMapping)、プロセッサーアダプター(HandlerAdapter)、ビューリゾルバー(ViewResolver)、バックエンドコントローラー(コントローラー) |
2 | Springフレームワークとのシームレスな統合 | これは他のWebフレームワークでは利用できません |
3 | 優れたスケーラビリティ | ほとんど必要ありませんが、簡単に拡張できます |
4 | 便利な単体テスト | Springが提供するMockオブジェクトを使用すると、Webレイヤーの単体テストを非常に簡単に実行できます。 |
5.5。 | パワフル | RESTful、データ検証、フォーマット、ローカリゼーション、テーマなど。 |
6 | jspタグライブラリ | 強力なJSPタグライブラリにより、JSPの記述が容易になります |
1.1.4Struts2との比較
共通点:
- これらはすべてプレゼンテーション層フレームワークであり、MVCモデルに基づいて記述されています。
- それらの最下層は、元のServletAPIから切り離せません。
- リクエストを処理するためのメカニズムはコアコントローラーです。
違い:
- Spring MVCの入り口はサーブレットで、Struts2はフィルターです。
- Spring MVCはメソッド設計に基づいており、Struts2はクラスに基づいており、Struts2は実行されるたびにアクションクラスを作成します。したがって、SpringMVCはStruts2よりもわずかに高速になります。
- Spring MVCはより簡潔に使用でき、JSR303もサポートしているため、ajaxリクエストの処理がより便利になります。
- Struts2のOGNL式により、ページ開発効率はSpring MVCよりも高くなりますが、実行効率はJSTL、特にhtmlほど効率的ではないstruts2フォームタグよりも優れていません。
1.2実行の原則
1.2.1フロントコントローラー
SpringのWebフレームワークは、DispatcherServletを中心に設計されています。DispatcherServletの役割は、さまざまなプロセッサにリクエストを配布することです。
Spring 2.5以降、Java 5以降を使用しているユーザーは、アノテーションベースのコントローラー宣言メソッドを使用できます。
Spring MVCフレームワークは、他の多くのMVCフレームワークと同様に、リクエスト駆動型であり、リクエストをディスパッチし、中央サーブレットの周りに他の関数を提供します。DispatcherServletは実際のサーブレットです(HttpServlet基本クラスから継承します)。
1.2.2SpringMVCの原則
要求が開始されると、フロントコントローラーは要求をインターセプトし、要求パラメーターに従ってプロキシ要求を生成し、要求に対応する実際のコントローラーを見つけ、コントローラーは要求を処理し、データモデルを作成し、データベースにアクセスし、応答します。モデルを中央コントローラーに制御するプロセッサーは、モデルとビューを使用してビューの結果をレンダリングし、結果を中央コントローラーに返し、結果をリクエスターに返します。
1.2.3SpringMVC実行原理
実線はSpringMVCフレームワークが提供する技術であり、開発者が実装する必要がないことを示し、点線は開発者が実装する必要があることを示しています。
1.2.4実行プロセス
1. DispatcherServletはフロントコントローラーを表し、SpringMVC全体のコントロールセンターです。ユーザーがリクエストを送信すると、DispatcherServletがリクエストを受信し、リクエストをインターセプトします。
要求されたURLが次のとおりであるとします:http:// localhost:8080 / SpringMVC / success
如上url拆分成三部分:http://localhost:8080服务器域名。
SpringMVC部署在服务器上的web站点。success表示控制器.
通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。
2. HandlerMappingは、プロセッサマッピングです。
DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。
3. HandlerExecutionChainは、特定のハンドラー(プロセッサー)を表します
其主要作用是根据url查找控制器,如上url被查找控制器为:success。
4. HandlerExecutionChainは、コントローラーマッピングの解析など、解析された情報をDispatcherServletに渡します。
5. HandlerAdapterは、特定のルールに従ってハンドラーを実行するプロセッサーアダプターを表します。
6.ハンドラーは、特定のコントローラーを実行させます。
7.コントローラーは、ModelAndViewなどの特定の実行情報をHandlerAdapterに返します。
8. HandlerAdapterは、ビューの論理名またはモデルをDispatcherServletに渡します。
9. DispatcherServletは、ビューリゾルバー(ViewResolver)を呼び出して、HandlerAdapterによって渡された論理ビュー名を解決します。
10.ビューリゾルバーは、解決された論理ビュー名をDispatcherServletに渡します。
11. DispatcherServletは、ビューパーサーによって解析されたビューの結果に従って特定のビューを呼び出します。
12.最終ビューがユーザーに表示されます。