web-dev-qa-db-fra.com

Struts2 vs Spring 3

Est-ce que quelqu'un connaît la différence entre Struts2 et Spring 3 MVC. Je connais la différence entre Struts 1 et Spring 2.5, mais quel est l'avantage de Struts2 sur Spring 3 ou autre.

J'ai essayé de chercher partout sur le Web, mais il n'y a de réponse globale nulle part.

46
Vivek

Struts2 est vraiment WebWork 2 renommé Struts2. Considérez un instant le fait que Struts a essentiellement exploité sa propre marque pour adopter WebWork comme sa nouvelle base, et cela devrait vous suggérer qu'il y en avait au moins certains qui pensaient que c'était très convaincant - on ne jette pas toujours leur propre base de code pour recommencer quand ils émettent une suite.

Cela dit, je ne vais pas vous dire que Struts2 est meilleur/pire que Spring 3 MVC. L'essentiel est qu'ils sont certainement comparables.

Si vous voulez plus de détails sur la façon dont ils se comparent, je vous suggère de consulter les présentations de Matt Raible dans les années passées sur ce sujet:

http://raibledesigns.com/rd/entry/my_comparing_jvm_web_frameworks

http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-ApacheConUS2007.pdf

incluant une feuille de calcul qui en compare plusieurs à différents degrés:

http://spreadsheets.google.com/pub?key=0AtkkDCT2WDMXdC1HOEtnUHpCejJMbUhGeGJWUmh5dVE&hl=en&output=html

28
kvista

Eh bien, Struts2 et Spring3 sont très similaires à bien des égards.Les deux sont un cadre orienté action et sensiblement le même dans le flux.Print MVC est sorti en raison de toutes les limitations connues de Struts1. mais lorsque vous choisissez Struts2 vs Spring3 MVC, il n'y a pas grand-chose à différencier et les deux sont bien conçus et offrent un bon cadre. pour Struts2 en tant que cadre basé sur Webwork, mais avec de nombreuses améliorations par rapport à Webwork.Un des principaux avantages est la prise en charge des balises d'interface utilisateur pour Struts2 concernant Spring3 MVC.

Nous utilisons Struts2 avec Spring DI et la gestion des transcations dans nos quelques projets et dans certains utilisant Spring MVC. cela ne dépend que de votre choix et de votre inclination de marque.

modifier

À mon avis, ce n'est pas une bonne pratique de comparer un cadre tel que conçu, il vaut mieux trouver vos exigences quelles sont exactement les exigences de votre projet que de faire une analyse qui cadre fournit les meilleures exigences et très similaires selon vos besoins plutôt que de faire une comparaison simple

16
Umesh Awasthi

CARACTÉRISTIQUES COMPARANTES

Struts 2

  • Composants MVC configurables, qui sont stockés dans le fichier struts.xml. Si vous voulez changer quoi que ce soit, vous pouvez facilement le faire dans le fichier xml.

  • Actions basées sur POJO. La classe d'action Struts 2 est Plain Old Java Object, qui empêche les développeurs d'implémenter une interface ou d'hériter d'une classe.

  • Prise en charge d'Ajax, qui est utilisé pour effectuer une demande asynchrone. Il envoie uniquement les données de terrain nécessaires plutôt que de fournir des informations inutiles, ce qui améliore les performances à la fin.

  • Prise en charge de l'intégration avec Hibernate, Spring, Tiles, etc.

  • Que vous souhaitiez utiliser JSP, freemarker, vélocité ou autre, vous pouvez utiliser différents types de types de résultats dans Struts 2.

  • Vous pouvez également tirer parti de diverses balises telles que les balises d'interface utilisateur, les balises de données, les balises de contrôle et plus encore.

  • Apporte un support suffisant pour le thème et le modèle. Struts 2 prend en charge trois types de thèmes différents, y compris xhtml, simple et css_xhtml.

Spring MVC

  • Séparation nette et claire des rôles. Qu'il s'agisse d'un contrôleur, d'un objet de commande, d'un objet de formulaire ou de toute autre chose, il peut être facilement exécuté à l'aide d'un objet spécialisé.

  • Tirez parti de l'adaptabilité, de la non-intrusion et de la flexibilité à l'aide de la signature de la méthode du contrôleur.

  • Utilisez maintenant les objets métier existants comme commande ou objet de formulaire plutôt que de les dupliquer pour étendre la classe de base du framework spécifique.

  • La liaison et la validation personnalisables permettront l'analyse et la conversion manuelles en objets métier plutôt que d'utiliser une chaîne conventionnelle.

  • Le transfert de mode flexible permet une intégration facile avec les dernières technologies.

  • Résolution des paramètres régionaux et des thèmes personnalisables, prise en charge des JSP avec ou sans bibliothèque de balises Spring pour JSTL, etc.

  • Tirez parti de la bibliothèque de balises JSP simple mais puissante connue sous le nom de bibliothèque de balises Spring. Il prend en charge diverses fonctionnalités telles que la liaison de données et les thèmes.


    AVANTAGES COMPARÉS

Struts 2

  • Conception simplifiée

  • Facilité d'utilisation du plug-in

  • Formulaire d'action simplifié et annotations

  • Meilleures fonctionnalités de balises

  • Intégration OGNL

  • Assistance AJAX

Spring MVC

  • Séparation claire entre les contrôleurs, les modèles JavaBeans et les vues qui n'est pas possible dans Struts.

  • Spring MVC est plus flexible par rapport aux Struts.

  • Spring peut être utilisé avec différentes plates-formes telles que Velocity, XLST ou diverses autres technologies d'affichage.

  • Il n'y a rien comme ActionForm dans Spring, mais se lie directement aux objets de domaine.

  • Le code est également plus testable que les Struts.

  • Il s'agit d'un framework J2EE complet comprenant sept couches indépendantes, ce qui simplifie l'intégration avec d'autres frameworks.

  • Il ne fournit pas de cadre pour l'implémentation du domaine d'activité et de la logique, ce qui aide les développeurs à créer un contrôleur et une vue pour l'application.

(Source http://www.cygnet-infotech.com/blog/struts-2-vs-springmvc )

6
Do Nhu Vy

Je répondrais de manière avisée car je n'ai pas beaucoup utilisé le ressort MVC.

Utilisez struts2 pour

1)struts2 tags and 
2)struts 2 plugins and 
3)struts2 plugin framework using freemarker makes struts2-jquery-plugin and config-browser-plugin

La convention struts 2 vous permet de créer des classes d'actions sans paires annotations et zéro configuration en xml. C'est juste pour le rendre beau sur papier, mais dans tous les vrais gros projets, vous devrez écrire des annotations. Si vous vous perdez parmi les annotations pendant l'exécution, il existe un moyen de découvrir la configuration dans le navigateur en mode dev, essayez config-browser-plugin.

N'oubliez pas que Struts/spring MVC se compose d'une très petite partie d'une application Web uniquement sur le contrôleur frontal.

3
samarjit samanta

Pas pour être sournois, mais si cela vaut la peine de considérer un choix de framework, alors cela vaut également la peine de résister à quelques pics contre les deux plus importantes histoires d'utilisateurs de haut niveau. Struts2 et Spring MVC 3 ont très facilement configuré des environnements de démonstration, c'est-à-dire que vous pouvez obtenir un archétype maven à partir de votre IDE en moins de 5 minutes).

J'ai participé à des discussions de groupe sur le meilleur cadre, et je crois vraiment qu'aucune discussion ne vaut le temps. Vous êtes bien mieux servi en jouant avec les frameworks dans le contexte de vos cas d'utilisation.

2
chad

Si vous connaissez la différence entre les jambes 1 et le ressort 2.5, demandez-vous plutôt quelle différence il y a entre les jambes 1 et 2 et le ressort 2,5 et 3 respectivement. Dans ce dernier, il y a le raffinement de webmvc avec validation, marshallage xml, repos, etc. Voir Quoi de neuf dans Spring 3. , pour les struts voir Quoi de neuf dans Struts 2. .

1
Johan Sjöberg

Comme l'a dit Umesh, le côté positif de spring3 MVC est qu'il a une intégration profonde avec Spring. Dans l'un de mes projets, j'utilisais un framework DI propriétaire, donc Struts2 était un choix évident (nous ne voulions pas deux framework DI ensemble)

Struts2 est un framework web mûri et largement utilisé avec un support communautaire très actif. Spring3 est un grand framework avec de nombreux modules dont spring mvc.

1
Vh24

Struts 2 a souffert d'un certain nombre de failles de sécurité au cours des deux dernières années et ce fait doit être pris en compte. http://www.cvedetails.com/product/6117/Apache-Struts.html?vendor_id=45

http://www.cvedetails.com/vendor/9664/Springsource.html

0
user2069647