Che cos'è esattamente Java EE?


162

Faccio Java SE da alcuni anni e sono passato a Java EE. Tuttavia, ho qualche problema a comprendere alcuni aspetti di Java EE.

  1. Java EE è solo una specifica? Quello che voglio dire è: EJB Java EE?

  2. EJB / Spring sono diverse implementazioni di Java EE?

Mi dispiace chiedere ma ho qualche difficoltà a capire cos'è Java EE.

Qualcuno potrebbe spiegare cos'è Java EE? E EJB?



2
Dovresti tagliare questa domanda in due domande, una è una copia, l'altra penso che non abbia una risposta nel link lì.
Kheldar,

2
In realtà, hai letto il tag [java-ee] wiki ?
Paŭlo Ebermann,


Risposte:


187

Java EE è solo una specifica? Quello che voglio dire è: EJB Java EE?

Java EE è davvero una specifica astratta . Chiunque è aperto a sviluppare e fornire un'implementazione operativa delle specifiche. Le implementazioni concrete sono i cosiddetti application server, come WildFly , TomEE , GlassFish , Liberty , WebLogic , ecc. Ci sono anche container servlet che implementano solo la parte JSP / Servlet dell'enorme API Java EE, come Tomcat , Jetty , eccetera.

Noi, gli sviluppatori Java EE, dovremmo scrivere il codice che utilizza la specifica (ad esempio importare solo javax.* le classi nel nostro codice, invece di specifiche classi di implementazione, come org.jboss.wildfly.*, com.sun.glassfish.*, ecc) e poi saremo in grado di eseguire il nostro codice su qualsiasi implementazione (in tal modo, su qualsiasi server delle applicazioni). Se hai familiarità con JDBC, è sostanzialmente lo stesso concetto di come funzionano i driver JDBC. Vedi anche ao In termini più semplici, che cos'è una fabbrica?

Il download dell'SDK Java EE da Oracle.com contiene sostanzialmente il server GlassFish insieme a una serie di documentazione ed esempi e facoltativamente anche l'IDE NetBeans. Non è necessario se si desidera un server e / o IDE diverso.

EJB fa parte delle specifiche Java EE. Guarda, è nell'API Java EE . I server di applicazioni Java EE a pieno titolo lo supportano immediatamente, ma i semplici contenitori JSP / Servlet no.

Guarda anche:


EJB / Spring sono diverse implementazioni di Java EE?

No, come detto, EJB fa parte di Java EE. Spring è un framework autonomo che sostituisce e migliora molte parti di Java EE. Spring non richiede necessariamente l'esecuzione di Java EE. Un contenitore di servlet a ossa nude come Tomcat è già sufficiente. In poche parole, Spring è un concorrente di Java EE. Ad esempio, "Spring" (standalone) compete con EJB / JTA, Spring MVC compete con JSF / JAX-RS, Spring DI / IoC / AOP compete con CDI, Spring Security compete con JAAS / JASPIC, ecc.

Durante i vecchi tempi di J2EE / EJB2, l'API EJB2 era terribile da implementare e mantenere. La primavera era quindi un'alternativa molto migliore a EJB2. Ma da EJB3 (Java EE 5), l'API EJB è stata notevolmente migliorata sulla base delle lezioni apprese da Spring. Dal momento che CDI (Java EE 6), non c'è davvero motivo di rivedere un altro framework come Spring per rendere gli sviluppatori più facili da sviluppare tra gli altri il livello di servizio.

Solo quando si utilizza un contenitore servlet bare-bones come Tomcat e non è possibile passare a un server Java EE, Spring è più attraente in quanto è più semplice installare Spring su Tomcat. Non è possibile installare ad esempio un contenitore EJB su Tomcat senza modificare il server stesso, in pratica reinventeresti TomEE.

Guarda anche:


2
Quindi si potrebbe dire che Java EE definisce quale supporto dovrebbe esistere per l'esecuzione di una tipica applicazione JEE?
James P.

4
@James: Sì. Quasi tutto in Java EE API è astratto. L'API Java SE ha anche diverse parti astratte, ad esempio JDBC, JAXP, JAXB, ecc.
BalusC

3
"Non c'è davvero un motivo per rivedere un altro framework come Spring per rendere gli sviluppatori più facili." -> Informazioni veramente preziose.
jacktrades

@BalusC: Ciao, il link ufficiale di Sun Java EE .... è interrotto, se dai un link simile a quello, sarà utile per qualcuno.
Abdul Rahman,

Per eseguire il framework Spring completo, sarebbe sufficiente il contenitore Servlet, il contenitore Servlet è [web server + contenitore web (implementa servlet api)] dove per eseguire Java EE è necessario un server applicazioni come Glassfish. Il contenitore servlet non sarebbe sufficiente. Il contenitore servlet è un sottoinsieme del server delle applicazioni. Come lo capisco?
Scambio eccessivo il

11

Java Enterprise Edition (Java EE) è una specifica ombrello che fa riferimento a una serie di altre specifiche più dettagliate, di cui Enterprise JavaBeans (EJB) è una delle più importanti.

Leggi questo - spiega la differenza tra Java EE e Spring

Grazie...


4
  • Fonte : Java 2 Platform, Enterprise Edition (J2EE) definisce lo standard per lo sviluppo di applicazioni enterprise multilivello basate su componenti. J2EE semplifica la creazione di applicazioni aziendali portatili, scalabili e che si integrano facilmente con applicazioni e dati legacy.

  • Fonte : la tecnologia Enterprise JavaBeans (EJB) è l'architettura del componente lato server per Java Platform, Enterprise Edition (Java EE). La tecnologia EJB consente lo sviluppo rapido e semplificato di applicazioni distribuite, transazionali, sicure e portatili basate sulla tecnologia Java.

  • Java EE è solo una specifica? Quello che voglio dire è: EJB Java EE?

    • Java EE è una specifica.

    • EJB è un'architettura componente lato server per Java EE

  • EJB / Spring sono diverse implementazioni di Java EE?

    • Sia EJB che Spring sono framework diversi seguendo Java EE.

6
Forse non è molto utile citare il testo antico (2005) da una versione antica della specifica (J2EE). OP ha specificamente richiesto Java EE, che è l'incarnazione moderna di J2EE.
Arjan Tijms,

-5

Per dirla semplicemente: JavaEE è una piattaforma.

È composto da molte specifiche che sono solo API. Le implementazioni concrete specifiche di queste API sono la cosiddetta "Implementazione di riferimento"

  1. EJB è solo una specifica all'interno della piattaforma JavaEE
  2. No, Spring è un framework applicativo che può consentire / ha il supporto per lo sviluppo di applicazioni JavaEE

EJB è Enterprise Java Beans


4
Questa risposta non aggiunge nulla alle risposte precedenti. Inoltre, non è accurato: una sola implementazione concreta è Reference, le altre no. Minore: Spring si integra con JavaEE, ma può funzionare senza di essa.
Tair,

@tair Sì, solo 1 implementazione concreta è considerata il "riferimento", ad esempio l'APP ha numerose implementazioni, ma solo EclipseLink è il RI. Quando ho menzionato il RI, intendevo interpretare le diverse API. penso che tu abbia frainteso la mia risposta sopra. Inoltre, sì, Spring si integra con JavaEE, che è quello che ho menzionato sopra.
SoftwareDeveloper
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.