O Java EE é apenas uma especificação? O que quero dizer é: EJB Java EE?
Java EE é realmente uma especificação abstrata . Qualquer pessoa está aberta para desenvolver e fornecer uma implementação funcional da especificação. As implementações concretas são os chamados servidores de aplicativos, como WildFly , TomEE , GlassFish , Liberty , WebLogic etc. Também existem contêineres de servlets que implementam apenas a parte JSP / Servlet da enorme API Java EE, como Tomcat , Jetty , etc.
Nós, os desenvolvedores Java EE, deve escrever código utilizando a especificação (ou seja, importar apenas javax.*
as classes em nosso código em vez de classes específicas de implementação, como org.jboss.wildfly.*
, com.sun.glassfish.*
, etc) e, em seguida, nós vamos ser capazes de executar nosso código em qualquer aplicação (assim, em qualquer servidor de aplicação). Se você conhece o JDBC, é basicamente o mesmo conceito de como os drivers JDBC funcionam. Veja também ao Em termos mais simples, o que é uma fábrica?
O download do Java EE SDK do Oracle.com contém basicamente o servidor GlassFish ao longo de várias documentações e exemplos e, opcionalmente, também o NetBeans IDE. Você não precisa se deseja um servidor e / ou IDE diferente.
O EJB faz parte da especificação Java EE. Olha, está na API Java EE . Os servidores de aplicativos Java EE completos suportam isso imediatamente, mas os contêineres JSP / Servlet simples não.
Veja também:
As implementações diferentes do EJB / Spring do Java EE?
Não, como dito, o EJB faz parte do Java EE. O Spring é uma estrutura independente que substitui e aprimora muitas partes do Java EE. O Spring não requer necessariamente que o Java EE seja executado. Um contêiner de servlet básico como o Tomcat já é suficiente. Simplificando, o Spring é um concorrente do Java EE. Por exemplo, "Spring" (autônomo) compete com EJB / JTA, Spring MVC com JSF / JAX-RS, Spring DI / IoC / AOP com CDI, Spring Security com JAAS / JASPIC, etc.
Nos tempos antigos do J2EE / EJB2, a API do EJB2 era terrível de implementar e manter. A primavera era então uma alternativa muito melhor ao EJB2. Mas desde o EJB3 (Java EE 5), a API do EJB foi muito aprimorada com base nas lições aprendidas com o Spring. Desde CDI (Java EE 6), não há realmente uma razão para olhar novamente outra estrutura, como o Spring, para tornar os desenvolvedores mais fáceis e desenvolver, entre outros, a camada de serviço.
Somente quando você estiver usando um contêiner de servlet básico como o Tomcat e não puder passar para um servidor Java EE, o Spring será mais atraente, pois será mais fácil instalar o Spring no Tomcat. Não é possível instalar, por exemplo, um contêiner EJB no Tomcat sem modificar o próprio servidor, você basicamente reinventaria o TomEE.
Veja também: