2009-06-06 5 views
11

Was sind die Vor- und Nachteile von Seam over Spring? Warum sollte ich Seam anstelle von Spring verwenden?Was sind die Vor- und Nachteile von Seam over Spring?

Gibt es in Seam etwas, das im Frühjahr nicht möglich ist? Alles im Frühling, was nicht in Seam möglich ist?

Wie steht es um zustandslose/zustandslose Architektur? Ich bin ein Spring-Benutzer, also bin ich natürlich voreingenommen.

Antwort

22

Warum Frühling?

  • Reiniger Code
  • Optimiertes Anwendungskonfiguration
  • Nizza Integration mit populären Open-Source-Produkte
  • Erste Klasse AOP Unterstützung
  • Enterprise-scale-Sicherheit: Acegi
  • Hochflexible MVC
  • Abstracted Datenzugriff (JDBC ist OK)
  • Enterprise Java ohne EJB
  • Testing ist einfach

Warum Seam?

  • Merge Java EE 5-Standards (EJB 3.0, JPA, JSF, Annotation) nahtlos
  • Stateful nach Design
  • Bijection
  • Integrated Ajax (ICEfaces und Ajax4JSF)
  • Geschäftsprozessintegration (jBPM)
  • Geschäftsregeln Integration (Drools)
  • Workspace Management
  • Geben Sie den vollständigen Stapel (von JBoss & RedHat)
  • Seam Text und EL Verbesserungen
  • wird wahrscheinlich ein Standard sein (JSR-299: Web Beans)

Von Framework-Deathmatch: Frühling vs Seam. Thomas Wiradikusuma (Frühling). Joshua Jackson (Naht). Java Benutzergruppe Indonesien. JaMU 07.03. 17. März 2007 PowerPoint-Präsentation here

3

Naht wird Ihnen eine hübsche, ah, nahtlose, Integration zwischen den Komponenten, die den Nahtstapel bilden. Alles sehr schön, solange du innerhalb dieses Stapels und innerhalb des Nahtmodells bleibst. Es fängt an, ein wenig weniger überzeugend zu wirken, sobald Sie anfangen, etwas Ungewöhnliches zu tun.

Wenn es nicht zu sehr eine Verallgemeinerung ist, ist Seam in dieser Hinsicht sehr "microsofty". Das ist keine schlechte Sache, es ist nur eine stilistische Sache. Der Frühling ist offener und braucht mehr Anstrengung, um in Gang zu kommen, aber er ist letztendlich flexibler und offener.

2

Sie können Spring und Seam zusammen verwenden - Spring für Backend-Komponenten, Seam für die Verbesserung der Web-Layer (JSF/GWT/Wicket) und andere Sachen. Naht bietet eine Menge Spring-Funktionalität (d. H.IoC-Container, Transaktionsmanagement) - in Ihrem Projekt können Sie entscheiden, welche Implementierung Sie verwenden möchten. Mehr Details zur Integration von Naht mit Feder - "Seam in Action - free bonus chapter"

2

Lassen Sie uns die beiden vergleichen.

Was ist gemeinsam?

Beide sind Open-Source-, folgen MVC-Architektur und hat eine Servlet-basierte Front-Controller.

Vorteile von Spring MVC

  • Erweiterung von Struts.
  • View kann mit JSP und HTML entwickelt werden. Sie können auch andere wie PHP oder Velocity plugintieren.
  • Hat eine große Anzahl von Controllern vordefiniert.
  • Aus der Box mit Federrahmen integriert.

Vorteile von Seam

  • Erweiterung der JSF
  • Ansicht entwickelten Bibliothek JSF-Komponente werden kann. Es gibt eine große Anzahl von Anbietern zur Auswahl.
  • Integrierbar JPA-Entitäten mit Web-Schicht
  • Annotation basierte Validierung
  • Integration mit EJB 3.0
  • aus der Box jBPM Unterstützung, die Definitionen Prozessablauf zur Verfügung stellt.
  • Integriert in Drools, in denen Sie Weblayer-Geschäftsregeln definieren können.
  • Gute Community-Unterstützung.

Fazit

Da Naht auf JSF gebaut wird, hat es große Anzahl von UI Komponentenbibliotheken zur Auswahl. Java EE-Stack wird besser wiederverwendet. Es hat viele interessante Module zuvor integriert.

Spring MVC ist auf Struts und Spring gebaut, so dass Spring Frame Stack besser als andere wiederverwendet werden kann. Aber die View wird mit JSP erstellt, daher müssen wir uns auf Anbieter von JSP-Tag-Bibliotheken verlassen, um umfangreiche Komponenten zu erstellen.

Seam-Framework wäre eine bessere Wahl, da das Spring-Framework ohnehin erweiterbar genug ist, um von Seam genutzt zu werden.

+4

'Feder MVC ist auf Struts und Feder gebaut, Feder wurde nie auf Struts gebaut. –

+1

"Die Ansicht wird jedoch mit JSP [...] erstellt". JSP ist _eine_ Option. Das Schöne an Spring MVC ist, dass Sie sich für eine beliebige Ansichtstechnologie entscheiden können. – James

5

Obwohl Naht hat viele Vorteile gegenüber dem Frühjahr, es gibt ein magisches Wort, das wirklich wert ist, darauf zu achten, und das ist LEISTUNG !!! Wenn Sie sich nicht um Leistungsprobleme sorgen, würde ich mit Naht gehen. Auf der anderen Seite, wenn Sie möchten, dass Ihre Anwendung so schnell wie möglich ist und Ihre Hardware begrenzt ist, würde ich Frühling verwenden. Ich sage nicht, dass Sie keine schnellen Anwendungen mit Naht entwickeln können, aber um dies zu tun, müssen Sie wirklich wissen, was Sie tun. Ich habe beide benutzt (ich bin kein Guru in jedem von ihnen) und was ich herausgefunden habe ist, dass obwohl der Frühling mehr Anstrengung braucht, um das zu bauen, was du willst, am Ende ist das Ergebnis flexibler und bringt bessere Leistungen.Ich glaube nicht, dass es etwas gibt, das in einem Rahmen getan werden kann, dass es in dem anderen nicht gemacht werden kann, und denke daran, dass ich für keinen von denen ein Experte bin.