web-dev-qa-db-fra.com

Différence entre Spring MVC et Struts MVC

Quelle est la principale différence entre le Spring MVC et le Struts MVC?

45
Krishna

La principale différence entre Spring MVC et Struts est la suivante: Spring MVC est un cadre à couplage lâche tandis que Struts est étroitement couplé. Pour les applications d'entreprise, vous devez créer votre application de manière aussi lâche que cela rendrait votre application plus réutilisable, plus robuste et plus distribuée.

40
hossaindoula

Si vous voulez comparer Spring MVC avec des entretoises, considérez ci-dessous les avantages de Spring MVC par rapport aux entretoises.

  1. Spring fournit une division très nette entre les contrôleurs, les modèles JavaBean et les vues.
  2. Le MVC de Spring est très flexible. Contrairement à Struts, qui force vos objets Action et Form dans un héritage concret (supprimant ainsi votre plan unique sur l'héritage concret en Java), Spring MVC est entièrement basé sur des interfaces. De plus, à peu près toutes les parties du framework Spring MVC sont configurables via le branchement de votre propre interface. Bien sûr, nous proposons également des cours pratiques comme option d'implémentation.
  3. Spring, comme WebWork, fournit des intercepteurs ainsi que des contrôleurs, ce qui facilite la prise en compte des comportements communs à la gestion de nombreuses demandes.
  4. Spring MVC est vraiment indépendant de la vue. Vous n'êtes pas poussé à utiliser JSP si vous ne le souhaitez pas; vous pouvez utiliser Velocity, XLST ou d'autres technologies d'affichage. Si vous souhaitez utiliser un mécanisme d'affichage personnalisé - par exemple, votre propre langage de modèle - vous pouvez facilement implémenter l'interface Spring View pour l'intégrer.
  5. Les contrôleurs Spring sont configurés via IoC comme tous les autres objets. Cela les rend faciles à tester et magnifiquement intégrés à d'autres objets gérés par Spring.
  6. Les niveaux Web Spring MVC sont généralement plus faciles à tester que les niveaux Web Struts, en raison de l'héritage forcé du béton et de la dépendance explicite des contrôleurs sur le servlet du répartiteur.
  7. Le niveau Web devient une couche mince au-dessus d'une couche d'objet métier. Cela encourage les bonnes pratiques. Struts et autres frameworks Web dédiés vous laissent seul dans la mise en œuvre de vos objets métier; Spring fournit un cadre intégré pour tous les niveaux de votre application
21
Rais Alam

Le framework Web MVC de Spring est conçu autour d'un DispatcherServlet qui envoie les requêtes aux gestionnaires, avec des mappages de gestionnaires configurables, une résolution d'affichage, des paramètres régionaux et une résolution de thème ainsi que la prise en charge des fichiers de téléchargement. Le gestionnaire par défaut est une interface Controller très simple, offrant simplement une méthode ModelAndView handleRequest (demande, réponse). Cela peut déjà être utilisé pour les contrôleurs d'application, mais vous préférerez la hiérarchie d'implémentation incluse, composée par exemple de AbstractController, AbstractCommandController et SimpleFormController. Les contrôleurs d'application seront généralement des sous-classes de ceux-ci. Notez que vous pouvez choisir une classe de base appropriée: si vous n'avez pas de formulaire, vous n'avez pas besoin d'un contrôleur de formulaire. C'est une différence majeure pour Struts

8
praveen

La principale différence entre struts & spring MVC concerne la différence entre la programmation orientée aspect (AOP) et la programmation orientée objet (OOP).

Spring rend les applications faiblement couplées en utilisant Dependency Injection . Le noyau de Spring Framework est le conteneur IoC.

OOP peut faire tout ce que fait AOP, mais une approche différente. Dans un autre Word, AOP complète OOP en fournissant une autre façon de penser la structure du programme.

Pratiquement, lorsque vous souhaitez appliquer les mêmes modifications à de nombreux fichiers. Il devrait être épuisé de travailler avec Struts pour ajouter le même code pour des tonnes de fichiers. Au lieu de cela, Spring écrit de nouvelles modifications ailleurs et injecte dans les fichiers.

Certaines terminologies connexes de l'AOP sont des préoccupations transversales, l'aspect, l'injection de dépendance ...

8
JavaEE guy

Spring MVC est profondément intégré dans Spring, Struts MVC ne l'est pas.

6
Ralph

Spring fournit une division très nette entre les contrôleurs, les modèles JavaBean et les vues.

1
raja777m