Ce este mai exact Java EE? (Programare, Java, Jakarta Ee, Ejb)

Frank Zimmer a intrebat.

De câțiva ani mă ocup de Java SE și trec la Java EE. Cu toate acestea, am probleme în a înțelege unele aspecte ale Java EE.

  1. Este Java EE doar o specificație? Ceea ce vreau să spun este: este EJB Java EE?

  2. Sunt EJB/Spring diferite implementări ale Java EE?

Îmi cer scuze că vă întreb, dar am dificultăți în a înțelege ce este Java EE.

Ar putea cineva să explice ce este Java EE? Și EJB?

Comentarii

  • Verificați stackoverflow.com/questions/1286019/starting-java-ee-mvc –  > Por Kheldar.
  • Ar trebui să tăiați această întrebare în două întrebări, totuși, una este un duplicat, iar cealaltă cred că nu are răspuns în link-ul de acolo. –  > Por Kheldar.
  • De fapt, ai citit wiki-ul cu tag-ul [java-ee]? –  > Por Paŭlo Ebermann.
  • citiți și: stackoverflow.com/questions/106820/what-is-java-ee –  > Por gheare.
  • de asemenea: who-implement-the-specification –  > Por jan.supol.
4 răspunsuri
BalusC

Este Java EE doar o specificație? Ceea ce vreau să spun este: este EJB Java EE?

Java EE este într-adevăr o abstract o specificație abstractă. Oricine este deschis să dezvolte și să furnizeze o implementare funcțională a specificației. Site-ul concrete concrete sunt așa-numitele servere de aplicații, cum ar fi WildFly, TomEE, GlassFish, Liberty, WebLogic, etc. Există, de asemenea, containere servlet care implementează doar partea JSP/Servlet a uriașei API Java EE, cum ar fi Tomcat, Jetty, etc.

Noi, dezvoltatorii Java EE, ar trebui să scriem cod utilizând specificația (de exemplu, importați numai javax.* în codul nostru, în loc de clase specifice implementării, cum ar fi org.jboss.wildfly.*, com.sun.glassfish.*, etc.) și apoi vom putea să ne rulăm codul pe orice implementare (deci pe orice server de aplicații). Dacă sunteți familiarizați cu JDBC, este practic același concept ca și modul în care funcționează driverele JDBC. A se vedea și a.o. În termeni simpli, ce este o fabrică?

Site-ul Descărcarea SDK Java EE de pe Oracle.com conține practic serverul GlassFish împreună cu o mulțime de documentație și exemple și, opțional, și IDE-ul NetBeans. Nu aveți nevoie de el dacă doriți un alt server și/sau IDE.

EJB face parte din specificația Java EE. Priviți, este în API-ul Java EE. Serverele de aplicații Java EE cu drepturi depline îl acceptă din start, dar nu și containerele JSP/Servlet simple.

Vedeți, de asemenea:

  • Unde pot găsi o listă cu toate implementările de referință pentru Java EE 6?
  • Dezvoltarea web Java EE, de unde încep și de ce competențe am nevoie?
  • Ce trebuie să înveți pentru a realiza aplicații web Java în Java EE 6?

Sunt EJB/Spring diferite implementări ale Java EE?

Nu, așa cum am spus, EJB face parte din Java EE. Spring este un cadru de sine stătător care înlocuiește și îmbunătățește multe părți din Java EE. Spring nu necesită neapărat Java EE pentru a funcționa. Un container de servlet de bază, precum Tomcat, este deja suficient. Pur și simplu, Spring este un concurent al Java EE. De exemplu, „Spring” (de sine stătător) concurează EJB/JTA, Spring MVC concurează JSF/JAX-RS, Spring DI/IoC/AOP concurează CDI, Spring Security concurează JAAS/JASPIC, etc.

În vremurile vechi J2EE/EJB2, API-ul EJB2 era teribil de greu de implementat și de întreținut. Spring era atunci o alternativă mult mai bună la EJB2. Dar, începând cu EJB3 (Java EE 5), API-ul EJB a fost mult îmbunătățit pe baza lecțiilor învățate de la Spring. De la CDI (Java EE 6), nu mai există niciun motiv pentru a ne uita din nou la un alt cadru precum Spring pentru a ușura munca dezvoltatorilor în ceea ce privește dezvoltarea, printre altele, a stratului de servicii.

Doar atunci când folosiți un container de servlet de bază, cum ar fi Tomcat, și nu puteți trece la un server Java EE, atunci Spring este mai atractiv, deoarece este mai ușor de instalat Spring pe Tomcat. Nu este posibil să instalați, de exemplu, un container EJB pe Tomcat fără a modifica serverul în sine; practic, ar trebui să reinventați TomEE.

A se vedea, de asemenea, și:

  • Când este necesar sau convenabil să folosiți Spring sau EJB3 sau toate acestea împreună?
  • Stiva Java EE 6 vs. Spring 3
  • Utilizarea JSF ca tehnologie de vizualizare a Spring MVC

Comentarii

  • Așadar, se poate spune că Java EE definește ce suport ar trebui să existe pentru ca o aplicație JEE tipică să funcționeze? –  > Por James P..
  • @James: Da. Aproape totul în API-ul Java EE este abstract. API Java SE are, de asemenea, mai multe părți abstracte, de exemplu, JDBC, JAXP, JAXB etc. –  > Por BalusC.
  • „Nu există niciun motiv pentru a ne uita din nou la un alt cadru, cum ar fi Spring, pentru a ușura munca dezvoltatorilor.” -> Informații cu adevărat valoroase. –  > Por jacktrades.
  • @BalusC: Bună, Este link-ul oficial Sun Java EE…. este rupt, dacă dați un link similar cu acesta, va fi de ajutor pentru cineva. –  > Por Abdul Rahman.
  • Pentru a rula un cadru Spring complet, ar fi suficient un container Servlet, Servlet container este [server web + container web (implementează servlet api)] în timp ce pentru a rula Java EE, aveți nevoie de un server de aplicații precum Glassfish. Containerul Servlet nu ar fi suficient. Servlet container este un subset al serverului de aplicații. Cum să înțeleg acest lucru? –  > Por overexchange.
Prabath Siriwardena

Java Enterprise Edition (Java EE) este o specificație umbrelă care face trimitere la o serie de alte specificații mai detaliate, dintre care Enterprise JavaBeans (EJB) este una dintre cele mai importante.

Citiți acest articol, care explică diferența dintre Java EE și Spring.

Vă mulțumim…

Srikanth Venkatesh
  • Sursa — Java 2 Platform, Enterprise Edition (J2EE) definește standardul pentru dezvoltarea de aplicații de întreprindere multitier bazate pe componente. J2EE simplifică crearea de aplicații de întreprindere care sunt portabile, scalabile și care se integrează cu ușurință cu aplicațiile și datele moștenite .

  • Sursa — Tehnologia Enterprise JavaBeans (EJB) este arhitectura de componente pe partea serverului pentru Java Platform, Enterprise Edition (Java EE). Tehnologia EJB permite dezvoltarea rapidă și simplificată a aplicațiilor distribuite, tranzacționale, sigure și portabile bazate pe tehnologia Java.

  • Este Java EE doar o specificație? Ceea ce vreau să spun este: este EJB Java EE?

    • Java EE este o specificație.

    • EJB este o arhitectură de componente de partea serverului pentru Java EE.

  • Sunt EJB/Spring implementări diferite ale Java EE?

    • Atât EJB, cât și Spring sunt cadre diferite care urmează Java EE.

Comentarii

  • Poate că nu este foarte util să citați un text vechi (2005) dintr-o versiune veche a specificației (J2EE). OP a cerut în mod specific Java EE, care este încarnarea modernă a J2EE. –  > Por Arjan Tijms.
SoftwareDeveloper

Pentru a spune mai simplu – JavaEE este o platformă.

Aceasta este alcătuită din multe specificații care sunt doar API-uri. Implementările concrete specifice ale acestor API-uri sunt așa-numitele „implementări de referință”.

  1. EJB este doar o specificație din cadrul platformei JavaEE.
  2. Nu, Spring este un cadru de aplicații care vă poate permite/are suport pentru a dezvolta aplicații JavaEE.

EJB înseamnă Enterprise Java Beans

Comentarii

  • Acest răspuns nu adaugă nimic la răspunsurile anterioare. În plus, nu este corect: doar o singură implementare concretă este Reference, celelalte nu sunt. Unul minor: Spring se integrează cu JavaEE, dar poate funcționa și fără el foarte bine. –  > Por Tair.
  • @tair Da, doar o singură implementare concretă este considerată „referință”, de exemplu, JPA are numeroase implementări, dar doar EclipseLink este RI. Când am menționat RI mă refeream la toate API-urile diferite. cred că ați înțeles greșit răspunsul meu de mai sus. De asemenea, da, Spring se integrează cu JavaEE, ceea ce am menționat mai sus. –  > Por SoftwareDeveloper.