一尘不染

Java EE到底是什么?

java

我从事Java SE已有数年了,然后转向Java EE。但是,在理解Java EE的某些方面时遇到一些麻烦。

  1. Java EE只是一个规范吗?我的意思是:是EJB Java EE吗?

  2. EJB / Spring是否是Java EE的不同实现?

抱歉,我很难理解Java EE是什么。

有人可以解释一下Java EE是什么吗?和EJB?


阅读 536

收藏
2020-02-26

共1个答案

一尘不染

Java EE只是一个规范吗?我的意思是:是EJB Java EE吗?

Java EE确实是一个抽象规范。任何人都愿意开发并提供规范的有效实施。在具体的实现是所谓的应用服务器,如WildFly,TomEE,GlassFish的,自由,的WebLogic等,还有一些只实现了巨大的Java EE API的JSP / Servlet的一部分servlet容器,如Tomcat的,码头,等等

我们,Java EE的开发者,应该写利用规范的代码(即导入只 javax.*在我们的代码,而不是类执行特定的类如 org.jboss.wildfly.*com.sun.glassfish.*等),然后我们就可以在任何执行(运行我们的代码,因此,在任何应用程序服务器)。如果你熟悉JDBC,则其基本概念与JDBC驱动程序的工作原理相同。另请参见ao 简单来说,什么是工厂?

从Oracle.com 下载的Java EE SDK基本上包含GlassFish服务器以及大量文档和示例,还可以选择包含NetBeans IDE。如果你需要其他服务器和/或IDE,则不需要它。

EJB是Java EE规范的一部分。看,它在Java EE API中。完善的Java EE应用服务器开箱即用地支持它,但是简单的JSP / Servlet容器则不支持。

EJB / Spring是否是Java EE的不同实现?

不用说,EJB是Java EE的一部分。Spring是一个独立的框架,可以替代和改进Java EE的许多部分。Spring不一定需要运行Java EE。像Tomcat这样的简单servlet容器已经足够了。简而言之,Spring是Java EE的竞争对手。例如,“ Spring”(独立)竞争EJB / JTA,Spring MVC竞争JSF / JAX-RS,Spring DI / IoC / AOP竞争CDI,Spring Security竞争JAAS / JASPIC,等等。

追溯到以前的J2EE / EJB2时代,EJB2 API的实现和维护非常糟糕。那时,Spring是EJB2的更好替代品。但是从EJB3(Java EE 5)开始,基于从Spring汲取的经验教训,EJB API有了很大的改进。由于CDI(Java EE 6的),有没有真正的理由来看看再另一个像Spring框架,使开发者更容易以等开发服务层。

仅当你使用像Tomcat这样的基本servlet容器并且无法转移到Java EE服务器时,Spring才更具吸引力,因为在Tomcat上安装Spring更容易。如果不修改服务器本身就无法在Tomcat上安装例如EJB容器,那基本上就是在重新发明TomEE。

2020-02-26