Spring MVCとStrutsのどちらが良いですか?


ベストアンサー

現在Javaテクノロジスタックでは、Spring MVCが最上位にあり、エンタープライズJavaアプリケーションの構築に広く使用されています。

Spring MVC非常に需要があり、更新されています。彼らはSpringの新しいバージョンを時々リリースします。 Springセキュリティは、アプリケーションを保護するための最良の方法の1つです。ストラットは古代です。しかし、ほとんどのレガシーアプリケーションがそれを使用して構築されたため、それはまだ存在しています。しかし、今日、アプリケーションを構築するためにStrutsを選択する開発者はほとんどいません。

次を使用することで、要件を簡単に満たすことができます。-SpringMVC:REST api、クライアントサーバーモデル、サービス指向アーキテクチャ(SOA)用。 -春のセキュリティ:アプリケーションを保護します。 -HibernateまたはSpringJDBCテンプレート。 (Hibernateを使用):データベース処理用-データベース用のMySQL。 -単体テスト用のJUnit。

回答

Springフレームワークは、WebドメインのMVC Model ViewControllerを含むいくつかのモジュールで構成されています。

Springモジュールの次の鳥瞰図。

MVC: WebモジュールがMVC./Remotingと呼ばれていることがわかります。このモジュールは、Webアプリケーションの開発に必要なすべてのボイラープレートコードで構成されています。これには、リクエストの処理、HTTPメソッド、URLマッピング、ビューリゾルバー、JSPタグライブラリ、セッションが含まれます。 22を参照してください。詳細については、WebMVCフレームワークを参照してください。

IOC-制御の反転: 「電話しないでください。電話します」

ここで注意が必要な部分があります。ご覧のとおり、IOCは上記のモジュール図の一部ではありません。 IOCは、他の多くのものとともにSpringCoreモジュールの一部です。

IOCはSpringを超えています。これは、依存性を減らし、モジュール性を高め、プログラムを拡張可能にするオブジェクト指向の設計原則です。

Martin Fowlerが言うように、制御の反転は、プログラムの制御フローが反転される原則です。プログラマーが制御するのではありません。プログラムのフローでは、外部ソース(フレームワーク、サービス、その他のコンポーネント)がプログラムを制御します。

IOCは次の設計上の問題を解決します。

  • 実行を切り離すため
  • モジュールが設計されたタスクに焦点を合わせるため。
  • 他のシステムがどのように実行するかについての仮定からモジュールを解放し、代わりに c オントラクト。
  • モジュール交換時の副作用を防ぐため。

SpringとはIOC。

春のIOCは、春にIOCを実装する方法です。 IOCは複数の方法で実現できます。ドキュメントによると-

これは、オブジェクトが依存関係、つまり、コンストラクター引数、ファクトリメソッドへの引数、またはオブジェクトインスタンスに設定されたプロパティを介してのみ操作する他のオブジェクトを定義するプロセスです。構築された後、またはファクトリメソッドから返された後。次に、コンテナはBeanの作成時にこれらの依存関係を注入します。このプロセスは基本的に逆であるため、Bean自体の名前制御の反転(IoC)は、の直接構築を使用して依存関係のインスタンス化または場所を制御します。クラス、またはサービスロケーターパターンなどのメカニズム。

春にはorg.springframework.beansおよびorg.springframework.contextには、Spring IOCContainerと呼ばれるIOCの実装が含まれています。インターフェースorg.springframework.context.ApplicationContextはSpringIoCコンテナーを表し、オブジェクトのインスタンス化、構成、およびアセンブルを担当します(SpringではオブジェクトはBeanです)。

リードスルー 7。詳細については、IoCコンテナおよび BeanFactory(Spring Framework 4.3.7.RELEASE API)を参照してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です