Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich hätte mal ne ganz blöde Frage zu den Begrifflichkeiten JEE und Spring.
JEE habe ich bisher immer für eine Spezifikation gehalten, die viele Frameworks nutzt um Geschäftsanwendungen zu ermöglichen. Spring habe ich immer für eine Implementierung dieses Standards gehalten (für bestimmte Bereiche wie Dependency Injection).
Jetzt habe ich öfters gehört, wie ein Vergleich zwischen JEE6 und Spring gemacht wurde. Geht das überhaupt, oder vergleicht man hier Äpfel mit Obst?
Was ist die Alternative zu Spring,wenn nicht JEE? Vielleicht EJB?
Irgendwie verstehe ich die ganzen Begrifflichkeiten nicht so richtig.
JEE ist eine große API mit mehreren unter-APIs wie JSF,CDI,JPA,Servlet,JAX-WS etc. etc. etc.
JEE implementierungen sind prinzipiell sogenannte Application Server wie Glassfish, JBoss, TomEE.
Diese Application Server "verbinden" die einzelnen Implementierungen der unter-APIs wie z.b. JSF->MyFaces/Mojarra, JPA->Hibernate,OpenJPA, etc. etc.
Spring hat damit erst mal gar nix zu tun.
Spring ist ein komplett eigenes Ecosystem, welches aber Integration zu verschiedenen JEE Technologies bietet. Z.b.:
- Spring Beans als JSF Beans benutzen
- Dekleratives Transactionhandling für JPA
- und und und
Ich denke man ganz grob Spring und JEE schon vergleichen.
Beides sind Stacks, die auf Java aufbauen und "Problemlösungen" anbieten.
Sping Core (IOC, etc) -> CDI
Spring MVC -> JSF (wobei Spring MVC auch auf JEE Technologies wie JSP und Servlets aufgebaut ist)
Danke für die Antwort.
Wenn ich dich richtig verstehe, verwendet Spring nur die Komponenten von JEE- welche das konkret sind, wird durch den jeweiligen Applikationsserver bestimmt.
Der eigentliche Vergleich der gemacht wird, ist der Umgang mit diesen Komponenten.
Also ohne Spring: mit Bordmitteln, die durch die JEE-Schnittstellenbeschreibung gegeben ist.
Und Mit Spring, was sich zwischen die JEE-API und dem Quellcode setzt.
Jein.
Den Kern von Spring bildet spring-core (mittlerweilen vllt auch mehrere module - hat sich doch einiges geändert in Spring in den letzten Jahren). Der beinhaltet so Sachen wie IOC,Contexts, AOP etc.
Das kann man am besten vergleichen mit CDI und EJB.
Wenn man dann hergehen will und mit Spring z.b. JPA oder JSF benutzen zu wollen, gibts module wie spring-jpa oder spring-web.
Damit kann man JPA oder JSF mit Spring benutzen.
Spring hat halt "Brücken" entwickelt die z.b. die JSF-API mit Spring verbinden.
Wenn du Spring auf einen Application Server deployest, wird halt die JSF API benutzt die schon im AS läuft.
Wenn du Spring auf einen Tomcat deployest, musst du halt eine JSF IMPL wie MyFaces oder Mojarra mit deployen.
Wenn du rein JEE benutzen willst, installierst du dir halt einen AS und es läuft schon alles, was ist JEE spezifiziert ist - ohne extra libs zu deployen etc.!
Es gibt halt hier und da unterschiedliche Ansätze aber wie du siehst, kann man viele JEE Technologien auch in Spring benutzen.
Ok, also Spring klemmt sich zwischen die JEE-API und meinen Quellcode und kann mit Hilfe weiterer Module auch Dinge wie JPA oder JSF nutzen. Dabei werden einige Teile ersetzt und erweitert.
Besser?