Java EE究竟是什么? [英] What exactly is Java EE?

查看:147
本文介绍了Java EE究竟是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have been doing Java SE for some years now and moving on to Java EE. However I have some trouble understanding some aspects of Java EE.


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

  1. Is Java EE just a specification? What I mean is: Is EJB Java EE?

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

Are EJB/Spring different implementations of Java EE?

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

I am sorry to ask but I have some difficulties to understand what Java EE is. Could someone explain what Java EE is? And EJB?

推荐答案


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

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

Java EE is indeed an abstract specification. Anybody is open to develop and provide a working implementation of the specification. The concrete implementations are the so-called application servers, like WildFly, TomEE, GlassFish, Liberty, WebLogic, etc. There are also servlet containers which implement only the JSP/Servlet part of the huge Java EE API, such as Tomcat, Jetty, etc.

我们Java EE开发人员应该使用规范编写代码(即只导入 <我们的代码中的code> javax。* 类而不是特定于实现的类,例如 org.jboss.wildfly。* com.sun.glass fish。* 等)然后我们将能够在任何实现上运行我们的代码(因此,在任何应用程序服务器上)。如果您熟悉JDBC,它与JDBC驱动程序的工作方式基本相同。另见a.o. 简单来说,什么是工厂?

We, Java EE developers, should write code utilizing the specification (i.e. import only javax.* classes in our code instead of implementation specific classes such as org.jboss.wildfly.*, com.sun.glassfish.*, etc) and then we'll be able to run our code on any implementation (thus, on any application server). If you're familiar with JDBC, it's basically the same concept as how JDBC drivers work. See also a.o. In simplest terms, what is a factory?

Java EE SDK下载基本上包含GlassFish服务器以及一堆文档和示例,还有NetBeans IDE。如果您需要不同的服务器和/或IDE,则不需要它。

The Java EE SDK download from Oracle.com contains basically the GlassFish server along a bunch of documentation and examples and optionally also the NetBeans IDE. You don't need it if you want a different server and/or IDE.

EJB是Java EE规范的一部分。看,它在Java EE API中。成熟的Java EE应用程序服务器支持它,但简单的JSP / Servlet容器不支持。

EJB is part of the Java EE specification. Look, it's in the Java EE API. Full-fledged Java EE application servers support it out the box, but simple JSP/Servlet containers don't.

  • Where can I find a list of all the reference implementations for Java EE 6?
  • Java EE web development, where do I start and what skills do I need?
  • What to learn for making Java web applications in Java EE 6?

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等。

No, as said, EJB is part of Java EE. Spring is a standalone framework which substitutes and improves many parts of Java EE. Spring doesn't necessarily require Java EE to run. A barebones servletcontainer like Tomcat is already sufficient. Simply put, Spring is a competitor of Java EE. E.g. "Spring" (standalone) competes EJB/JTA, Spring MVC competes JSF/JAX-RS, Spring DI/IoC/AOP competes CDI, Spring Security competes JAAS/JASPIC, etc.

在旧的J2EE / EJB2期间,EJB2 API的实现和维护非常糟糕。然后Spring是EJB2的一个更好的替代品。但是从EJB3(Java EE 5)开始,基于从Spring学到的经验教训,EJB API得到了很大的改进。从CDI(Java EE 6)开始,没有理由再次查看像em这样的另一个框架,使开发人员更容易开发服务层。

Back during the old J2EE/EJB2 times, the EJB2 API was terrible to implement and maintain. Spring was then a much better alternative to EJB2. But since EJB3 (Java EE 5), the EJB API was much improved based on lessons learnt from Spring. Since CDI (Java EE 6), there's not really a reason to look at again another framework like Spring to make the developers more easy as to developing among others the service layer.

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

Only when you're using a barebones servletcontainer such as Tomcat and can't move on to a Java EE server, then Spring is more attractive as it's easier to install Spring on Tomcat. It isn't possible to install e.g. an EJB container om Tomcat without modifying the server itself, you would basically be reinventing TomEE.

  • When is it necessary or convenient to use Spring or EJB3 or all of them together?
  • Java EE 6 vs. Spring 3 stack
  • Using JSF as view technology of Spring MVC

这篇关于Java EE究竟是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆