JEE und Spring

Dieses Thema JEE und Spring im Forum "Application Tier" wurde erstellt von jfkoernjf, 15. Jan. 2014.

Thema: JEE und Spring Hallo, ich hätte mal ne ganz blöde Frage zu den Begrifflichkeiten JEE und Spring. JEE habe ich bisher immer für...

  1. 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.

    Vielen Dank schon mal für Eure Erklärungen.

    VG Micha
     
  2. Vielleicht hilft dir das Java-Tutorial weiter. Hier klicken --> (Klick)
  3. 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)
     
    Zuletzt bearbeitet: 15. Jan. 2014
  4. 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.

    Ist das richtig so?
     
  5. 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.
     
    Zuletzt bearbeitet: 15. Jan. 2014
  6. 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?
     
  7. Glaub das kann man so stehen lassen ;)
    Spring klemmt sich halt zwischen einzelne APIs von JEE und nicht zwischen die "komplette JEE API".
     
    Zuletzt bearbeitet: 16. Jan. 2014
  8. Alles klar, vielen Dank!
     
  9. Schau dir jetzt hier den Kurs an und lernen Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)