Java EE到底是什么?


162

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

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

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

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

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



2
您应该将这个问题分为两个问题,一个是重复的,另一个我认为在该链接中没有得到回答。
Kheldar 2011年

2
实际上,您是否阅读过[java-ee] 标签wiki
圣保罗Ebermann


Answers:


187

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

Java EE确实是一个抽象规范。任何人都愿意开发并提供规范的有效实施。在具体的实现是所谓的应用服务器,如WildFlyTomEEGlassFish的自由的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。

也可以看看:


2
因此,可以说Java EE定义了一个典型的JEE应用程序应该运行什么支持?
James P.

4
@詹姆斯:是的。Java EE API中的几乎所有内容都是抽象的。Java SE API还具有几个抽象部分,例如JDBC,JAXP,JAXB等
。– BalusC

3
“确实没有理由再次考虑使用类似Spring这样的框架来使开发人员更加容易。” ->真正有价值的信息。
jacktrades 2012年

@BalusC:嗨,Sun Java EE官方网站了吗?...链接已断开,如果您提供与该链接相似的链接,则对您有所帮助。
Abdul Rahman 2014年

要运行完整的Spring框架,Servlet容器就足够了,Servlet容器是[Web服务器+ Web容器(实现Servlet API)],要运行Java EE,您需要像Glassfish这样的应用程序服务器。Servlet容器不够用。Servlet容器是应用程序服务器的子集。我怎么理解?
外汇兑换交易'17

11

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

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

谢谢...


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

  • -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的不同框架。

6
从规范的古代版本(J2EE)中引用古代文本(2005)可能不是很有用。OP专门要求Java EE,它是J2EE的现代体现。
Arjan Tijms 2011年

-5

简而言之-JavaEE是一个平台。

它由许多规范(仅API)组成。这些API的具体具体实现称为“参考实现”

  1. EJB只是JavaEE平台中的一种规范
  2. 不,Spring是一个应用程序框架,可以让您(已经)支持您开发JavaEE应用程序

EJB是企业Java Bean


4
该答案不会为之前的答案添加任何内容。而且,这是不准确的:只有一个具体的实现是Reference,而其他的则不是。次要点:Spring与JavaEE集成,但是没有它就可以正常工作。
Tair 2015年

@tair是,因为JPA有许多实现,但是只有EclipseLink是RI,因此只有1个具体实现被视为“参考”。当我提到RI时,我的意思是跨不同的API。我认为您误解了我的上述回答。另外,是的,Spring与JavaEE集成在一起,这就是我上面提到的。
SoftwareDeveloper
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.