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: