SpringMVC-原則

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.最終ビューがユーザーに表示されます。

おすすめ

転載: blog.csdn.net/hxy1625309592/article/details/115190332