Java EE究竟是什么?

时间:2011-09-03 18:42:27

标签: java java-ee

我已经做了几年的Java SE并继续使用Java EE。但是我在理解Java EE的某些方面时遇到了一些麻烦。

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

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

  3. 我很抱歉,但是我很难理解Java EE是什么。有人能解释一下Java EE是什么吗?和EJB?

4 个答案:

答案 0 :(得分:161)

  

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

Java EE确实是一个抽象规范。任何人都愿意开发并提供规范的工作实现。 具体实现是所谓的应用程序服务器,如WildFlyTomEEGlassFishLibertyWebLogic等还有一些servlet容器只实现了庞大的Java EE API的JSP / Servlet部分,例如TomcatJetty等。

我们Java EE开发人员应该使用规范编写代码(即在我们的代码中仅导入 javax.*类,而不是实现特定的类,例如org.jboss.wildfly.*,{{ 1}}等等,然后我们就可以在任何实现上运行我们的代码(因此,在任何应用程序服务器上)。如果您熟悉JDBC,它与JDBC驱动程序的工作方式基本相同。另见a.o. In simplest terms, what is a factory?

来自Oracle.com的Java EE SDK download基本上包含GlassFish服务器以及一堆文档和示例,还包括NetBeans IDE。如果您需要不同的服务器和/或IDE,则不需要它。

EJB是Java EE规范的一部分。看,it's in the 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)开始,没有理由再次查看像em这样的另一个框架,使开发人员更容易开发服务层。

只有当你使用像Tomcat这样的准系统servlet容器并且无法转移到Java EE服务器时,Spring才会更有吸引力,因为在Tomcat上安装Spring更容易。无法安装,例如在没有修改服务器本身的情况下,Tomcat是一个EJB容器,你基本上就是在重新发明TomEE。

另见:

答案 1 :(得分:11)

Java企业版(Java EE)是一个伞形规范,它引用了许多其他更详细的规范,其中Enterprise JavaBeans(EJB)是其中一个更重要的规范。

阅读this - 它解释了Java EE和Spring之间的区别

...谢谢

答案 2 :(得分:4)

  • Source - Java 2平台企业版(J2EE)定义了开发基于组件的多层企业应用程序的标准。 J2EE简化了构建可移植,可伸缩且可与传统应用程序和数据轻松集成的企业应用程序。

  • Source - Enterprise JavaBeans(EJB)技术是Java平台企业版(Java EE)的服务器端组件体系结构。 EJB技术可以基于Java技术快速简化地开发分布式,事务性,安全性和可移植性应用程序。

  •   

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

    • Java EE是一个规范。

    • EJB是Java EE的服务器端组件体系结构

  •   

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

    • EJB和Spring都是遵循Java EE的不同框架。

答案 3 :(得分:-4)

简单地说 - JavaEE是一个平台。

它由许多规范组成,它们只是API。这些API的具体具体实现是所谓的“参考实现”

  1. EJB只是JavaEE平台中的一个规范
  2. 不,Spring是一个应用程序框架,可以让您/支持您开发JavaEE应用程序
  3. EJB是Enterprise Java Beans