2013-09-29 17 views
37

Jetzt lese ich "Begining Java EE 7". Und ich habe mich gefragt, dass Java EE 7 ein guter Stapel von Technologien ist, einschließlich CDI, Bean-Validierung, JSF für Web Tier und andere Spezifikationen.Spring vs Java EE 7

So habe ich eine Frage:
Warum sollte ich Spring Framework studieren, wenn Java EE 7 existiert und deckt alle Fähigkeiten, die Spring implementiert?

+4

Natürlich ist eine Sache besser als eine andere, weil Sie das Buch * zuerst * gepackt haben. –

Antwort

30

Ich werde ein wenig von dem teilen, was ich über die Verwendung von Spring weiß. Sie haben recht, wenn Sie sagen, dass Java EE 7 alle Technologien zur Lösung der Probleme bietet.

Well Spring erweitert diese Funktionen und erleichtert Entwicklern das Leben.

Als ein Beispiel, wenn Sie Spring MVC Framework verwenden, können Sie Spring UI-Tags verwenden, um Ihre JSP zu erstellen, und diese Tags wiederum können Ihnen helfen, die Werte direkt Ihrem Controller zuzuordnen. Unter Controller verstehe ich die Java-Klasse, die aufgerufen wird, wenn Sie das Senden durchführen. Es hilft Ihnen auch, die Formulardaten zu validieren.

Dies kann auch mit der Servlet-Technologie erreicht werden, aber mit Spring können Sie sich auf die Geschäftslogik konzentrieren und sich darum kümmern.

In meiner Erfahrung als Entwickler ist es gut, Java EE 7 zu kennen und zu verstehen, aber Frameworks wie Spring verwenden einige der Best Practices und Muster, um Entwicklern das Leben zu erleichtern.

Würde ich gerne die Meinungen von anderen hören.

Hoffe, das hilft.

+9

Generell glaube ich nicht, dass plain JSP für das Rendern der Benutzeroberfläche mehr verwendet werden sollte. Wenn Sie JSF verwenden, wird dasselbe erreicht, wie Sie es bei Spring für die Wertzuordnung mit Sicherungsobjekten beschrieben haben. Z.B. Wenn Sie die Bean-Validierung verwenden, wird der JSF automatisch über Validierungsfehler informiert (Getestet mit PrimeFaces. Keine Notwendigkeit, irgendwelche Parameter mit Controllern zu behandeln, es sei denn, dies ist ausdrücklich erwünscht). Sie können Entitäten (JPA) auch direkt mit JSF der Benutzeroberfläche zuordnen. Es scheint, dass JavaEE7 vielleicht etwas komplizierter ist als Spring, aber für mich scheint es robuster und am Ende etwas handlicher zu sein. –

+1

Ich denke, dass jeder, der sich die Tugenden eines Frameworks zu Eigen macht, der * hilft * in jahrzehntelangen "handlungsorientierten" Frameworks wie JSP zu schreiben, wirklich seinen Technologie-Stack neu analysieren muss. "Komponentenorientierte" Frameworks wie Wicket, JSF, Tapestry sind wirklich sehr ausgereift und steigern auf erstaunliche Weise Ihre Produktivität. Ich kann nicht für die anderen sprechen, aber wicket behandelt alle Web 2/AJAX-Sachen auf eine transparente Art und Weise (wenn du es willst), erlaubt dir aber trotzdem, in JS zu hacken, wenn du so geneigt bist. Ich finde, dass ich selten zu JS zurückkehren muss - oder wie ich es "Web-Assembler-Sprache" nennen möchte – Volksman

+0

Ich stimme zu, sein Beispiel ist schlecht. Als ich JSP las, schauderte ich. Aber ich benutze Frühling und habe lange Zeit. Kein Grund, JSP zu benutzen. Sie können, wenn Sie wollen, aber Sie sollten nicht. Es gibt viele Verknüpfungen zu verschiedenen Front-End-Frameworks wie JSF, Velocity, Thymeleaf, Freemarker, Wicket usw. Sie zwingen Sie nicht auf einen Pfad. –

18

Ich denke, dass man einfach beide wissen sollte. Spring hat eine riesige Community und wird weit verbreitet verwendet, aber Java EE geht jetzt auch voran und verwendet viele Technologien, die im Frühjahr in seinen neuesten Versionen sind.

Es ist jedoch falsch zu sagen, dass Java EE alle Felder abdeckt, die Spring ausführt. Meiner Meinung nach hat Spring immer noch etwas, das den Unterschied machen könnte, wenn du in bestimmten Bereichen arbeitest, wie Mobile (Spring Mobile), Social (Spring Social), Navigation Flow Management (Spring Webflow) und andere.

+0

Wieder stimmt das nicht. JEE hat viele Dinge, die im Frühling nicht vorhanden sind und nicht in naher Zukunft erscheinen. Richtige Ereignismechanismen, View-Frameworks (Spring hat keine aktuelle View-Technologie, vielleicht Thymeleaf). Spring Social kann von Agorava leicht geschlagen werden: http://www.agorava.org/. Das Gleiche gilt für Sicherheits- und andere Projekte. Bitte beachten Sie, dass JEE Erweiterungsmechanismen hat und Entwickler nicht länger zu einem von einem Unternehmen kontrollierten Projekt beitragen müssen. Sogar Spring Data ist jetzt als CDI-Plugin verfügbar, aber wir haben ein viel besseres Projekt namens Apache Deltaspike. –