こんにちは皆さん、最近、Spring MVC の調査を開始しました。現在、Spring MVC を使用するプロジェクトに携わっています。その前に、Struts 2 フレームワークを調べました。ただし、私の意見では、クライアント側の MVC フレームワークにも独自のものがあるため、2 つのフレームワークには、MVC デザイン パターンである AngularJS の定義と実装が異なります。Spring MVC と Struts 2 の相違点について説明します。
Spring : ( Spring in Actionから引用)
1-コントローラー: Springでは、コントローラーはリクエストを処理し、いくつかのロジックを実行し(理想的には、このロジックはいくつかのサービスまたはビジネスロジッククラスに抽出する必要があります)、データを返すコンポーネントです。
「DispatcherServlet の仕事は、リクエストを Spring MVC コントローラーに送信することです。コントローラーは、リクエストを処理する Spring コンポーネントです。しかし、典型的なアプリケーションには複数のコントローラーがあり、DispatcherServlet はリクエストを送信するコントローラーを決定するための助けが必要です。したがって、 DispatcherServlet は、1 つまたは複数のハンドラー マッピングを参照して、リクエストの次の停止場所を特定します。ハンドラー マッピングは、決定を行う際に、リクエストによって運ばれる URL に特に注意を払います。」 p166
2- モデル:ユーザーに戻してブラウザに表示する必要がある情報です。
「コントローラーによって実行されるロジックは、多くの場合、ユーザーに戻してブラウザーに表示する必要がある情報をもたらします。この情報はモデルと呼ばれます。」
3- ビュー: これは、HTML+CSS とモデル情報を組み合わせた最も明白なものです。
次に、Struts 2 が MVC をどのように実行するかを見てみましょう
Struts2: (Struts 2 in Action から引用)
1- コントローラ :コントローラは URL を適切なアクションにマップするコンポーネントであり、アクションはストラットでモデルを実装します ?! (春には、これはコントローラーの機能ではありません)。Struts には、FilterDispatcher というコントローラーが 1 つしかありません。Spring では、これは Controller とは呼ばない DispatcherServlet によって行われます。
「コントローラーの仕事は、リクエストをアクションにマッピングすることです」
「Struts 2 FilterDispatcher がコントローラーの役割を果たします」 p13
2- モデル: Struts のモデルは、ビジネス ログといくつかのデータ モデルを一緒に保持するコンポーネントであり、アプリケーションの状態を構成します。
「モデルはStruts 2アクションコンポーネントによって実装されています」 p13
「より専門的に言えば、モデルはアプリケーションの内部状態です。この状態は、データ モデルとビジネス ロジックの両方で構成されています」 p14
したがって、Struts のモデルは、ユーザー、契約、注文などのデータ モデルだけでなく、アプリケーションのロジックも含まれています。
これら 2 冊の本で表されている文字列とストラット 2 の 2 つの図を次に示します
。Spring MVC
ストラット 2
さて、どの MVC が正しい MVC ですか?
フロントコントローラーMVCは誰に関連していますか?
事前に回答いただきありがとうございます。