動作原理SpringMVC

SpringMVCプロセス

図1に示すように、ユーザは、フロントエンドコントローラのDispatcherServletに要求を送信します。

2、のDispatcherServlet HandlerMapping呼プロセッサは、要求マッパを受信します。

(が生成される場合)3は、プロセッサマッパーは、特定のプロセッサを見つける(構成XMLに応じて、検索するためのノート)、オブジェクトはプロセッサおよびプロセッサインターセプタを生成さ一緒のDispatcherServletに戻ります。

4、DispatcherServletのコールHandlerAdapterプロセッサアダプタ。

図5に示すように、特定の適応コールプロセッサを介しHandlerAdapter(また、バックエンドとして知られるコントローラ)。

6、コントローラは、完全なリターンのModelAndViewを実行します。

7、のModelAndViewバックのDispatcherServletに結果HandlerAdapterコントローラ。

8、のDispatcherServletのModelAndViewはViewResloverビューリゾルバを通過します。

図9は、ViewReslover戻っは、特定のビューを解析されました。

10、DispatcherServletのは、ビュー(モデルデータが満たされたビューを予定)ビューをレンダリングします。

11、のDispatcherServletユーザ応答。

コンポーネントの説明:

次のコンポーネントは、典型的には、提供されるフレームワークを使用して実装されています。

DispatcherServlet:フロントエンドコントローラ、プロセス全体の制御センターは、コントロールの他の構成要素は、構成要素間の結合を低減する、統一、各コンポーネントのスケーラビリティを向上させます。

HandlerMapping:インタフェースモードを達成するためのプロファイル、注釈の方法:例えばマッピング拡張処理することによって、異なるマッピングを達成するための方法、。 

HandlAdapter:プロセッサのより多くの種類をサポートするために、プロセッサアダプタを拡張することもできます。

ViewResolver:パーサーによって拡張ビューは、例えば、ビューの解像度より多くの種類をサポート:JSP、FreeMarkerの、PDFのような優れ。

成分:
1、フレームによって提供されるのDispatcherServletフロントエンドコントローラ(開発する技術者を必要としない)、
効果:リピータに対応する、要求、応答結果を受信し、中央処理装置。DispatcherServletの他の成分との間の結合を減少させます。
ユーザ要求は、コントローラの前端に到達するには、MVCモードCと等価であり、全体のプロセスのDispatcherServletの中心がユーザの要求を呼び出す処理の他のコンポーネントによって制御され、プレゼンスのDispatcherServletは、コンポーネント間の結合を減少させます。

図2に示すように、フレームによって提供されるプロセッサHandlerMappingマッパー(開発する技術者を必要としない)、
効果:ハンドラルックアップリクエストURL
、ユーザ要求に応じてプロセッサを発見する責任HandlerMapping即ちハンドラは、例えば、異なるマッピングを達成するためSpringMVCマッパーさまざまな方法を提供します:プロファイルは、インターフェイスモード、注釈方法を実現しています。

3、HandlerAdapterアダプタプロセッサ
効果:ハンドラを実行するための特定のルール(ルールHandlerAdapterが必要)に従って
アダプタモードのアプリケーションであるプロセッサHandlerAdapter、による実行のため、プロセッサは、アダプタによって実行拡張の複数のタイプであってもよいです。

図4に示すように、プロセッサハンドラ(必要なエンジニアが開発する)
注:アダプターが正しい実行ハンドラに行くことができるように、準備ハンドラの要件HandlerAdapterに応じを行う
ハンドラのDispatcherServletハンドラの制御の下に、フロントコントローラのDispatcherServlet第2のバックエンドです特定のユーザーの要求が処理されます。
ハンドラは、特定のユーザーのサービス要求に関連しているので、それは一般的にビジネスニーズに応じてハンドラを開発するエンジニアを必要とします。

5フレームによって提供されるビューリゾルバ(開発する技術者を必要としない)、viewresolver
効果:論理ビュー名に応じて、ビューを解析すると、実際のビューに解決(ビュー)
表示結果を生成するようにリゾルバビューを処理する責任があり、最初のロジックに従ってリゾルバを見ます特定の名前の物理的なビューにビュー名は、ページのアドレスである、ビューオブジェクトがビューを生成し、ビュー最後に表示ページを介してユーザに処理結果をレンダリングします。springmvcビューフレームワークがあって、ビューの多くの種類を提供しています。jstlView、freemarkerView、pdfViewが好きです。
あなたはエンジニアがビジネスニーズに基づいて特定のページを開発する必要があり、ユーザーにページテンプレート技術によってページやタグページで、一般的に示したデータをモデル化する必要があります。

6、表示するには、View(開発に必要な技術... JSP)
ビュー(... JSP、FreeMarkerの、PDF)インターフェース、ビューの実装クラスのサポート、異なるタイプであります

次のようにコアアーキテクチャ具体的な処理手順は:
1を最初のユーザーが要求を送信し、 - >はDispatcherServletの後、フロントコントローラは、グローバルに、統一されたアクセスポイントとして、それらが処理されていない要求が、他のパーサに手数料処理を受けプロセス制御;
2、のDispatcherServlet - > HandlerMapping、要求がHandlerMapping HandlerExecutionChainオブジェクト(プロセッサを含むハンドラ(ページコントローラ)オブジェクト、インターセプタのHandlerInterceptor複数の)オブジェクト、そのような戦略モードにマッピングされ、追加することが容易です新しいマッピング戦略;
3、のDispatcherServlet - > HandlerAdapterは、HandlerAdapterは、アダプタのプロセッサのパッケージは、プロセッサの複数の種類、デザインパターンアダプタの、すなわちアプリケーション、それが簡単にプロセッサの多くの種類をサポートすることをサポートするでしょう。
4 - 、HandlerAdapter、HandlerAdapterと呼ばれるプロセッサの>関数呼び出し処理方法は、プロセッサの処理方法、処理完了の実際の機能の結果に応じて適応される;のModelAndViewオブジェクトと(モデルデータを含む、ロジックを返します ビュー名)
。5、論理ビューのModelAndView名- > ViewResolver、ViewResolver名はこの戦略モードでは、特定の論理ビュー表示に解決されます、他のビュー技術を交換することは簡単です。
。6、表示- >、レンダービューモデルをレンダリングするためにモデルデータに基づいて渡されます、こちらのモデルマップは実際に、他のビューテクノロジをサポートするために、簡単なデータ構造である;
、7ユーザーによって返さのDispatcherServlet、DispatcherServletの応答に制御を返し、このフローは終了。

私たちは、通常の状況下では、次の2つのコンポーネントを開発する必要があります。

ハンドラ:バックエンド・コントローラによって表されるプロセッサ。

ビュー:ビュー、すなわち、言語モデルデータを示す通常ラベルビュー、ユーザーインターフェイスに表示。

 

前SpringMVCでのは、MVCパターンが何であるかを見てみましょう

MVC:MVCはデザインパターンであります

分析:

モデルM-モデル(完全なビジネス・ロジック:YESのJavaBean設定、サービス+ DAO +エンティティ)

V-ビュービュー(DOインタフェース表示JSP、HTML ......)

C-コントローラコントローラ(受信要求 - >コールモデル - >結果ページに従って分布)

 

springMVCは何ですか。 

  springMVCは、オープンソースのMVCフレームワーク、springMVC = Struts2の+春、springMVCプラスStruts2の統合sringの同等ですが、springMVCと春はそれをどうするかである、という疑問はありますか?これは、Baiduの百科事典に良い説明があります。平均値は、springMVCスプリングが、実際には、元に基づく春フォローアップの製品ですが、また、MVCのWebアプリケーションモジュールを提供するだけspringMVCバネとして理解することができます(AOPに似て、このモジュールIOC)1つのモジュールが、ネットワークは、多くの場合、springMVCシームレスに統合し、春には、春にはサブモジュールの事実springMVCであると言うので、春と統合する必要はありません。

SpringMVCの回路図:

あなたは疑問がたくさんあるかもしれマップを参照してください、そして今、私たちは、このマップを見て:(ステップは、比較MVCの模式的に理解することができます)

最初のステップ:ユーザーは、フロントエンドコントローラ(のDispatcherServlet)に要求を開始

ステップ2:フロントエンドコントローラプロセッサ要求マッパ(HandlerMappering)プロセッサ(ハンドル)を見つけるために:参照して、XMLコンフィギュレーションまたは注釈

第三段階:フロントコントローラとしてプロセッサマッパ(HandlerMappering)を見つけた後は、戻り実行鎖(HandlerExecutionChain)

ステップ4:フロントエンドコントローラ(のDispatcherServlet)コールハンドラアダプタ(HandlerAdapterがある)プロセッサを実行する(ハンドラ)

ステップ5:プロセッサアダプタハンドラを実行します

ステップ6:ハンドラのModelAndViewを返すためにプロセッサアダプタを実行します

第7工程:プロセッサアダプターフロントコントローラのModelAndViewに戻ります

第8工程:ビューの解像度を行うフロントエンドビューリゾルバ要求コントローラ(ViewResolver)

ステップ9:フロントコントローラのビューとしてバックビューリゾルバ

ステップ10:レンダリングするためのコントローラの正面端面図

第10工程:ユーザフロントエンドコントローラに応答結果

私たちは非常に混沌と感じていると考えている手順を参照してください、これは正常ですが、誰もがここで理解しようとすると、主にいくつかのコンポーネントのspringMVCです。

フロントエンドコントローラ(のDispatcherServlet):コンピュータCPUの同等の要求、応答結果を受信します。

プロセッサマッパー(HandlerMapping):URLによると、プロセッサを見つけます

コード処理ロジックを記述するためのプログラマーを必要:(プロセッサ(ハンドラ))

プロセッサアダプタ(HandlerAdapter):これは、プロセッサの複数のタイプをサポートすることができるように、プロセッサは、アダプタにパッケージされ、アナログ(アプリケーション・アダプタモード)ノートブックアダプタ

ビューリゾルバ(ViewResovlerは):ビューの解決のために、マルチ文字列が返され、プロセスは、対応するページに分割することができます

オリジナルリンク:https://www.cnblogs.com/xiaoxi/p/6164383.html

おすすめ

転載: www.cnblogs.com/x-zhoulin/p/11527749.html
おすすめ