ホームページ > よくある問題 > springmvcとはどのようなフレームワークですか?

springmvcとはどのようなフレームワークですか?

anonymity
リリース: 2019-05-06 13:54:48
オリジナル
4692 人が閲覧しました

JavaEE アーキテクチャは、上からアプリケーション層、Web 層、ビジネス層、永続化層の 4 つの層で構成されます。 Struts と SpringMVC は Web 層のフレームワークであり、Spring はビジネス層のフレームワークであり、Hibernate と MyBatis は永続化層のフレームワークです。

SpringMVC を使用する理由

多くのアプリケーションの問題は、ビジネス データを処理するオブジェクトとビジネス データを表示するビューとの間に緊密な結合があることです。通常、ビジネス オブジェクトを更新するコマンドはビュー自体から開始されます。ビジネス オブジェクトの変更は非常に機密です。さらに、複数のビューが同じビジネス オブジェクトに依存する場合、柔軟性がありません。

SpringMVC は、Web MVC 設計パターンを実装し、リクエスト駆動型である Java ベースの軽量 Web フレームワークであり、MVC アーキテクチャ パターンのアイデアを使用して、Web 層の責任を分離します。リクエスト駆動とは、リクエスト/レスポンス モデルを使用することを意味します。フレームワークの目的は、開発を簡素化することです。SpringMVC は、日常の Web 開発を簡素化することも目的としています。

springmvcとはどのようなフレームワークですか?

MVC デザイン パターン

MVC デザイン パターンのタスクは、ビジネス データを含むモジュールを、表示されるビューから分離することです。モジュール。どうしてそうなった?モデルとビューの間にリダイレクト層を導入すると、問題を解決できます。このリダイレクト層は、リクエストを受信し、モデルを更新するアクションを実行して、モデルの変更についてビューに通知するコントローラーです。

具体的な処理:

(1) まず、ユーザーはリクエストを送信します—>DispatcherServlet.フロントエンド コントローラーはリクエストを受信した後、処理しますが、他のパーサーに委任して、グローバル プロセス制御のための統合アクセス ポイントとして処理を実行します。

(2) DispatcherServlet——>HandlerMapping、プロセッサ マッパーは、リクエストを HandlerExecutionChain オブジェクト ( Handler Processor オブジェクト、複数の HandlerInterceptor インターセプター) オブジェクト;

(3) DispatcherServlet——>HandlerAdapter、プロセッサ アダプタは、複数の種類のプロセッサをサポートするアダプタとしてプロセッサをパッケージ化します。つまり、アダプタのアプリケーションです。設計パターンにより、多くのタイプのプロセッサをサポートしやすくなります;

(4) HandlerAdapter---> プロセッサの対応する関数処理メソッドを呼び出し、ModelAndView オブジェクト (モデル データ、論理ビュー名を含む) を返します。

(5) ModelAndView オブジェクト (Model 部分はビジネス オブジェクトによって返されるモデル データ、View 部分は論理ビュー名です) -> ViewResolver、ビュー リゾルバーは論理ビュー名を特定のビューに解析します。 View;

(6) View -> Rendering, View は受信した Model モデル データに従ってレンダリングします。ここでの Model は実際には Map データ構造です;

(7) DispatcherServlet に制御を返しますと、DispatcherServlet がユーザーに応答を返すと、プロセスは終了です。

以上がspringmvcとはどのようなフレームワークですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート