In die JEE-Welt zum Berufseinstieg einsteigen: JEE oder direkt Spring lernen?

derdevil100

Cadet 3rd Year
Registriert
Aug. 2014
Beiträge
36
Hallo,

Ich habe recht gute Java (SE) Kenntnisse. Vor einiger Zeit hatte ich mir mal ein Buch über JEE 7 geholt, habe es jedoch nach kurzer Zeit wieder abgebrochen (hatte damals genug anderes zu tun). Jetzt bin ich zum Studienende auf Stellensuche im Java-Bereich und dort ist nirgends von JEE die Rede, sondern wenn dann meist von Spring. JEE an sich wird ja glaube ich auch kaum eingesetzt, sondern wenn dann Spring?! Lohnt es sich daher überhaupt mit JEE zu beschäftigen?

Da ich das ganze zur Vorbereitung in den Berufseinstieg machen möchte ist nun die Frage, was ich denn lernen soll? JEE und Spring oder nur Spring? Kann man Spring überhaupt lernen, wenn man vorher kein JEE gelernt hat?

Zu Themen wie Servlets, JSP oder Anwendungserver könnte ich vielleicht in 2-3 Sätzen ungefähr andeuten, was das ist, aber praktisch habe ich noch nie etwas damit gemacht und Deatilwissen habe ich auch nicht.
 
Java EE und Spring sind beide gut vertreten am Markt. Die Entwicklung der letzten Jahre geht ein wenig richtung JEE, Spring wird oft eingesetzt weil damit schon Erfahrungen da sind.

Ich würde beides Empfehlen, einiges ist ähnlich den Java EE hat sich von Spring inspirieren lassen.
Spring kannst du auch ohne Java EE Kenntnisse lernen, genauso umgedreht. Wenn du beides machst siehst du mit der Zeit die Unterschiede und Vor- und Nachteile.

Servlets und JSP sind bestandteil von JAVA EE. Für beides benötigtst du einen Servlet-Container (Tomcat, Jetty, ...) oder einen Application Server (JBoss/Wildfly, Glassfish, Tom EE+).

Servelts bilden die Nutzung von verschiedenen HTTP Methoden ab (GET, POST, PUT, ...). Relativ Low Level, eben Protokollebene.
JSP sind Java Server Pages, so ala mischmasch aus Makrosprache und Java Code (PHP in Java nur noch schlimmer). Wird während der Laufzeit im Servletcontainer compailiert und ausgeführt. Ich halte JSP für obsolet und würde direkt in JSF einsteigen.

Achja Edit: JSF sind Java Server Faces. Gibt verschiedenen Frameworks die das Abbilden wie Primefaces, Icefaces, MyFaces und Co. Ist vom Grundkonzept eine Trennung in Makro Sprache XHTML mit eine Java Bean. Die Frameworks bieten fertige Komponenten an (Datatable, Grids, Panels, Labels usw) die man relativ einfach nutzen kann. Bei Spring würde ich für Web einen Blick in Spring MVC (Model View Controller) empfehlen.

Edit 2: Generell nutzt oder kannst du Java EE mit Spring zusammen nutzen (Spring Security + JSF + EJB/Spring Beans).
 
Zuletzt bearbeitet:
Wir setzen bei uns ausschließlich Spring ein. Es ist halt sehr einfach gestrickt und es funktioniert sofort wie erwartet.

Mit JEE hatte ich anfangs so meine Probleme: CDI vs. EJB, @Stateless @Stateful @ApplicationScoped, etc. pp. Bis man da durchgestiegen ist... und selbst dann meckert die IDE noch hier und da, dass irgendwas nicht passt. In Wildfly funktionierts dann problemlos und Glassfish schmeißt eine Exception nach der anderen.
Ist natürlich alles eine Sache der Erfahrung. Aber wie gesagt: Bei Spring gab's nie solche Hürden.

Blick in die Vergangenheit:
Spring wurde damals entwickelt, weil JEE extrem umständlich war. Irgendwann fing die JEE Group dann an, Spring nachzubauen und seit JEE 7 würde ich sagen, dass beide System in etwa gleich einfach zu benutzen sind. Aber die ganzen Jahre davor wurde vermehrt auf Spring gesetzt.

Das führt u.A. dazu, dass man bei Spring Problemen innerhalb von 5 Sekunden eine Lösung für sein Problem bei StackOverflow findet. Bei JEE Problemen sieht es ziemlich mager aus.
 
JEE als Schlagwort wird selten verwendet, weil die JEE-Spec extrem umfangreich ist und viele typische Anforderungen an Business-Applikationen mit einem entsprechenden Standard abdeckt. Eigentlich wird imho von einem Java-Entwickler erwartet, grundlegende Kenntnisse über verschiedener JEE-Aspekte zu haben. Spring hingegen ist kein Standard, sondern ein extra Framework/Bibliotheken-Ökosystem. Ich würde die Nicht-Nennung von JEE also nicht überinterpretieren.

Mit JEE8 wird das DI von JSF wahrscheinlich deprecated, und CDI als Standard für Bean-Injection in xhtml werden. Allein dadurch lohnt es sich ein bisschen mit den Java-Standards auseinanderzusetzen. Ansonsten gilt das was der_guru gesagt hat: Spring war in den Anfangstagen von EJB überfällig, mittlerweile sind alle guten Ideen aber wieder zurückgemergt und für meinen Geschmack sind die JEE-Standards mittlerweile sogar einen Schritt weiter.

Zu meinem Hintergrund: Ich migriere als Teil meines Berufs alte Webapplikationen (meist Spring + JSF 1.x) auf neue Technologie-Stacks (meist EJB für Backend, CDI + JSF 2.x für Frontend). Ich habe also zwangsweise tiefere Kenntnisse sowohl über JEE als auch über Spring.

PS: Mit einem Tomcat, einer CDI-Implementierung und einem Webframework alà Vaadin kommt man auch schon auf dem SE-Technologiestack sehr weit. DI, Container-Managed Transactions, Eventsystem, Interceptoren für Dingen wie Rechtemanagment bekommt man einer aktuellen CDI-Bibliothek alles mitgeliefert.
 

Ähnliche Themen

Zurück
Oben