Struts2とSpring 3 MVCの違いを知っている人はいますか? Struts 1とSpring 2.5の違いは知っていますが、Struts2がSpring 3またはそれ以外の点で優れている点は何ですか。
Web全体を調べてみましたが、包括的な答えはどこにもありません。
Struts2は、実際にはWebWork 2がStruts2に名前変更されました。 StrutsがWebWorkを新しいベースとして採用するために本質的に独自のブランド名を活用しているという事実を考慮してください。続編を発行したときに新たに開始する独自のコードベース。
そうは言っても、Struts2がSpring 3 MVCよりも優れている/悪いことを説明するつもりはありません。一番下の行は、彼らが間違いなく比較可能であるということです。
比較方法の詳細については、このトピックに関する過去数年間のMatt Raibleのプレゼンテーションをご覧になることをお勧めします。
http://raibledesigns.com/rd/entry/my_comparing_jvm_web_frameworks
さまざまな程度でそれらのいくつかを比較するスプレッドシートを含む:
Struts2とSpring3はどちらも多くの点で非常によく似ていますが、どちらもアクション指向のフレームワークであり、フローでもほとんど同じです。SpringMVCは、Struts1のすべての既知の制限のために登場しました。しかし、Struts2 MVSとSpring3 MVCを選択するようになったとき、差別化できるものはほとんどなく、どちらも適切に設計された優れたフレームワークです。 WebworkベースのフレームワークとしてのStruts2の場合、webworkの多くの改善点があります。1つの大きな利点は、Spring3 mvcに関するStruts2のUIタグのサポートです。
Struts2とSpring DIを使用し、いくつかのプロジェクトとSpring MVCを使用するトランザクション管理を使用しています。それはあなたの選択とあなたのブランドの傾向だけに関係します。
編集
私の意見では、設計されたフレームワークのように比較することは良いプラクティスではありません。単純な比較を行うのではなく、フレームワークがニーズに応じて最適で非常に類似した要件を提供する分析を行うよりも、プロジェクトの要件を正確に満たす必要があります
機能比較
ストラット2
Struts.xmlファイルに保存される構成可能なMVCコンポーネント。何かを変更したい場合は、xmlファイルで簡単に変更できます。
POJOベースのアクション。 Struts 2アクションクラスは、Plain Old Java Objectです。これにより、開発者はインターフェイスを実装したり、クラスを継承したりできなくなります。
非同期リクエストを行うために使用されるAjaxのサポート。不要な情報を提供するのではなく、必要なフィールドデータのみを送信するため、パフォーマンスが向上します。
Hibernate、Spring、Tilesなどとの統合のサポート。
JSP、freemarker、velocityなどのいずれを使用する場合でも、Struts 2ではさまざまな種類の結果タイプを使用できます。
UIタグ、データタグ、コントロールタグなどのさまざまなタグを活用することもできます。
- テーマとテンプレートを十分にサポートします。 Struts 2は、xhtml、simple、css_xhtmlなど、3種類のテーマをサポートしています。
Spring MVC
きちんとした明確な役割の分離。コントローラー、コマンドオブジェクト、フォームオブジェクトなど、どんなものでも、専用オブジェクトの助けを借りて簡単に実現できます。
コントローラーメソッドシグネチャの助けを借りて、適応性、非侵入性、および柔軟性を活用します。
特定のフレームワークの基本クラスを拡張するために、既存のビジネスオブジェクトを複製するのではなく、コマンドまたはフォームオブジェクトとして使用します。
カスタマイズ可能なバインディングと検証により、従来の文字列を使用するのではなく、手動で解析してビジネスオブジェクトに変換できます。
柔軟なモード転送により、最新のテクノロジーと簡単に統合できます。
カスタマイズ可能なロケールとテーマの解決、JSTL用のSpringタグライブラリの有無にかかわらずJSPのサポートなど。
シンプルですが、Springタグライブラリとして知られる強力なJSPタグライブラリを活用します。データバインディングやテーマなどのさまざまな機能のサポートを提供します。
比較するメリットストラット2
簡素化された設計
プラグインの使いやすさ
簡素化されたActionFormと注釈
はるかに優れたタグ機能
OGNL統合
AJAXサポート
Spring MVC
Strutsでは不可能な、コントローラー、JavaBeansモデル、およびビュー間の明確な分離。
Spring MVCはStrutsと比較して柔軟性があります。
Springは、Velocity、XLST、または他のさまざまなビューテクノロジーなどのさまざまなプラットフォームで使用できます。
SpringにはActionFormのようなものはありませんが、ドメインオブジェクトに直接バインドします。
また、コードはStrutsと比較してテスト可能です。
7つの独立したレイヤーで構成される完全なJ2EEフレームワークであり、他のフレームワークとの統合を簡素化します。
開発者がアプリケーションのコントローラーとビューを作成するのに役立つビジネスドメインとロジックを実装するためのフレームワークを提供しません。
(ソース http://www.cygnet-infotech.com/blog/struts-2-vs-springmvc )
私は春のMVCをあまり使っていないので、私は思慮深い方法で答えます。
Struts2を使用して
1)struts2 tags and
2)struts 2 plugins and
3)struts2 plugin framework using freemarker makes struts2-jquery-plugin and config-browser-plugin
Struts 2の規則により、アクションクラスwithout evenannotationsとxmlでゼロ構成を作成できます。紙で見た目を良くするためだけですが、実際のすべての大きなプロジェクトでは注釈を書く必要があります。実行中に注釈の中で迷子になった場合、開発モードのブラウザで設定を見つける方法があります。config-browser-pluginを試してください。
Struts/spring MVCは、フロントコントローラーまでのWebアプリケーションの非常に小さな部分で構成されています。
気をつけてはいけませんが、フレームワークの選択を検討する価値がある場合は、最も重要なカップルの高レベルのユーザーストーリーに対していくつかのスパイクを立ち上げる価値があります。 Struts2とSpring MVC 3はどちらもデモ環境を非常に簡単にセットアップできます。つまり、5分以内にIDEから実行されるMavenアーキタイプを取得できます。
私はどのフレームワークが優れているかについてパネルディスカッションに参加してきましたが、時間をかけて議論する価値はないと信じています。ユースケースのコンテキストでフレームワークを使用することで、サービスが向上します。
ストラット1とスプリング2.5の違いがわかっている場合は、代わりにストラット1と2、およびスプリング2.5と3の違いをそれぞれ自問してください。後者では、検証、xmlマーシャリング、残りなどを使用したwebmvcの改良があります。 Spring 3.0の新機能 を参照してください。ストラットについては Struts 2.0の新機能 を参照してください。
Umeshが言ったように、spring3 MVCの良い面は、Springとの深い統合があることです。私のプロジェクトの1つでは、独自のDIフレームワークを使用していたため、Struts2は当然の選択でした(2つのDIフレームワークを一緒に望んでいませんでした)
Struts2は成熟しており、広く使用されているWebフレームワークであり、非常に積極的なコミュニティサポートがあります。 Spring3は、spring mvcを含む多くのモジュールを備えた大きなフレームワークです。
Struts 2は過去2年間に多くのセキュリティ脆弱性に悩まされており、この事実を考慮すべきです。 http://www.cvedetails.com/product/6117/Apache-Struts.html?vendor_id=45