所有Java EE规范的概述

45

我正在寻找所有Java EE技术栈的清晰描述。

我认为有很多像我一样在许多网站/教程中搜索,却没有找到精确的列表,其中列出了Java EE中使用的技术以及它们的用途。

我希望有人能简单而清晰地阐明这些内容,让它对整个社区都有好处。

4个回答

72

重要提示:尽管此答案仍然有效,您可能还想查看以下内容:
Java EE 8 技术列表;
Jakarta EE 8 技术列表;
Jakarta EE 9 技术列表。


Java EE 7 技术

以下是 Java EE 7 技术规范列表。更多详情请查阅 JSR 页面:

  • Java EE 平台

    • JSR 342:Java Platform, Enterprise Edition 7 (Java EE 7)
  • Web 应用技术

    • JSR 356:Java API for WebSocket
    • JSR 353:Java API for JSON Processing
    • JSR 340:Java Servlet 3.1
    • JSR 344:JavaServer Faces 2.2
    • JSR 341:Expression Language 3.0
    • JSR 245:JavaServer Pages 2.3
    • JSR 52:Standard Tag Library for JavaServer Pages (JSTL) 1.2
  • 企业应用技术

  • Web服务技术

    • JSR 339: Java RESTful Web服务API(JAX-RS)2.0
    • JSR 109:实现企业Web服务1.3
    • JSR 224: Java基于XML的Web服务API(JAX-WS)2.2
    • JSR 181: Java平台上的Web服务元数据
    • JSR 101: Java基于XML的RPC API(JAX-RPC)1.1
    • JSR 67: Java XML消息API 1.3
    • JSR 93: Java XML注册表API(JAXR)1.0
  • 管理和安全技术

    • JSR 196: 容器的Java身份验证服务提供程序接口 1.1
    • JSR 115: 容器的Java授权契约 1.5
    • JSR 88: Java EE应用部署 1.2(可选)
    • JSR 77: J2EE管理 1.1
    • JSR 45: 其他语言调试支持 1.0
  • Java SE中与Java EE相关的规范

  • JSR 222: Java Architecture for XML Binding(JAXB)2.2
  • JSR 206: Java API for XML Processing(JAXP)1.3
  • JSR 221: Java Database Connectivity 4.0
  • JSR 3: Java Management Extensions(JMX)2.0
  • JSR 925: JavaBeans Activation Framework(JAF)1.1
  • JSR 173: Streaming API for XML(StAX)1.0

详细信息请参考此页面

Java EE堆栈

正如Arun Gupta在他的书《Java EE 7 Essentials》中所述,不同的组件共同提供一个集成的堆栈,如下所示:

Java EE堆栈

因此我们有以下内容:

  • 不同的组件可以在逻辑上分为三个层次:后端、中间和Web层。这只是一种逻辑表示,根据应用程序的要求,组件可以被限制在不同的层次。

  • JPA和JMS提供基本服务,例如数据库访问和消息传递。JCA允许连接到旧系统。Batch用于执行非交互式、面向大量任务。

  • Managed Beans和EJB使用POJOs提供了一种简化的编程模型来使用基本服务。

  • CDI(Contexts and Dependency Injection)、Interceptors和Common Annotations提供了适用于各种组件的概念,例如类型安全的依赖注入、使用拦截器来处理横切关注点以及一套通用的注解。Concurrency Utilities可用于在管理线程中运行任务。JTA使得事务性拦截器可以应用于任何POJO。

  • CDI扩展允许您以标准方式扩展平台的现有功能。

  • JAX-RS和JAX-WS、JSF、JSP和EL定义了Web应用程序的编程模型,Web Fragment可以自动注册第三方Web框架。JSON提供了一种在Web层解析和生成JSON结构的方法。WebSocket允许在单个TCP连接上建立双向全双工通信渠道。

  • Bean Validation提供了一种标准方法来声明约束并在不同技术之间进行验证。

  • 每个技术的简要概述

    要了解以上主要技术的更多信息,请查看Java EE 7教程。页面中有一个主要技术的好概述,可以在此页面找到。它的简要摘录如下:

    企业JavaBean技术

    企业JavaBean(EJB)组件或企业bean是一个具有字段和方法以实现业务逻辑模块的代码体。您可以将企业bean视为可独立使用或与其他企业bean组合使用,在Java EE服务器上执行业务逻辑的构建块。

    企业bean是会话bean或消息驱动bean。

    • 会话bean表示与客户端的短暂会话。当客户端完成执行后,会话bean及其数据将消失。

    • 消息驱动bean结合了会话bean和消息监听器的特点,允许业务组件异步接收消息。通常,这些是Java消息服务(JMS)消息。

    在Java EE 7平台中,新的企业bean功能包括以下内容:

    • EJB Lite中的异步本地会话Bean

    • EJB Lite中的非持久化定时器

    Java EE 7平台需要Enterprise JavaBeans 3.2和Interceptors 1.2。Interceptors规范是EJB规范的一部分。

    Java Servlet技术

    Java Servlet技术使您能够定义特定于HTTP的Servlet类。Servlet类扩展了通过请求响应编程模型访问的应用程序托管的服务器的功能。虽然Servlet可以响应任何类型的请求,但它们通常用于扩展由Web服务器托管的应用程序。

    在Java EE 7平台中,新的Java Servlet技术功能包括以下内容:

    • 非阻塞I/O

    • HTTP协议升级

    Java EE 7平台需要Servlet 3.1。

    JavaServer Faces 技术

    JavaServer Faces 技术是一种用于构建Web应用程序的用户界面框架。JavaServer Faces 技术的主要组件如下:

    • GUI组件框架。

    • 可在不同种类的HTML或不同标记语言和技术中呈现组件的灵活模型。Renderer对象生成标记以呈现组件,并将模型对象中存储的数据转换为可在视图中表示的类型。

    • 用于生成HTML 4.01标记的标准RenderKit。

    以下功能支持GUI组件:

    • 输入验证

    • 事件处理

    • 模型对象与组件之间的数据转换

    • 托管模型对象创建

    • 页面导航配置

    • 表达式语言(EL)

    所有这些功能均可使用标准的Java API和基于XML的配置文件获得。

    在Java EE 7平台上,JavaServer Faces技术的新功能包括:

    • HTML5友好的标记

    • Faces Flows

    • 资源库合同

    Java EE 7平台需要JavaServer Faces 2.2和Expression Language 3.0。

    JavaServer Pages 技术

    JavaServer Pages (JSP) 技术允许您将片段的servlet代码直接放入基于文本的文档中。JSP页面是一个基于文本的文档,包含两种类型的文本:

    • 静态数据,可以用任何基于文本的格式(如HTML或XML)表示

    • JSP元素,确定页面如何构建动态内容

  • 要了解有关JSP技术的信息,请参阅The Java EE 5 Tutorial, 网址为http://docs.oracle.com/javaee/5/tutorial/doc/

    Java EE 7平台需要JavaServer Pages 2.3以与早期版本兼容,但建议在新应用程序中使用Facelets作为显示技术。

    JavaServer Pages标准标签库

    JavaServer Pages标准标签库(JSTL)封装了许多JSP应用程序中常见的核心功能。您可以使用单个标准标签集而不是在JSP应用程序中混合来自众多供应商的标签。这种标准化使您能够在支持JSTL的任何JSP容器上部署应用程序,并使标签的实现更可能进行优化。

    JSTL具有迭代器和条件标记来处理流程控制,标记来操作XML文档,国际化标记,使用SQL访问数据库的标记以及常用函数的标记。

    Java EE 7平台需要JSTL 1.2。

    Java Persistence API

    Java Persistence API(JPA)是用于持久性的基于Java标准的解决方案。持久性使用对象/关系映射方法来弥合面向对象模型和关系数据库之间的差距。Java Persistence API还可以在Java EE环境之外的Java SE应用程序中使用。Java Persistence包括以下区域:

    • Java Persistence API

    • 查询语言

    • 对象/关系映射元数据

    Java EE 7平台需要Java Persistence API 2.1。

    Java Transaction API

    Java Transaction API(JTA)提供了一个标准接口来划分事务。Java EE体系结构提供了默认的自动提交以处理事务提交和回滚。自动提交意味着查看数据的任何其他应用程序将在每个数据库读取或写入操作后看到更新的数据。但是,如果您的应用程序执行两个相互依赖的不同数据库访问操作,则希望使用JTA API来标记整个事务(包括两个操作)的开始、回滚和提交的位置。

    Java EE 7平台需要Java Transaction API 1.2。

    Java API for RESTful Web Services

    Java API for RESTful Web Services(JAX-RS)为根据表征状态转移(REST)架构风格构建的Web服务的开发定义API。JAX-RS应用程序是一个Web应用程序,由打包为WAR文件中的servlet的类和所需的库组成。

    Java EE 7平台需要JAX-RS 2.0。

    托管 Bean

    托管 Bean 是一种轻量级的容器管理 POJO 对象,具有最小要求,支持一小部分基本服务,如资源注入、生命周期回调和拦截器。 托管 Bean 是 JavaServer Faces 技术指定的托管 bean 的概括,并且可以在 Java EE 应用程序中的任何地方使用,而不仅仅是在 Web 模块中。

    托管 Bean 规范是 Java EE 7 平台规范(JSR 342)的一部分,Java EE 7 平台需要托管 Bean 1.0。

    Java EE 中的上下文和依赖注入

    Java EE 中的上下文和依赖注入(CDI)定义了一组上下文服务,由 Java EE 容器提供,使开发人员可以轻松地在 Web 应用程序中使用企业 bean 和 JavaServer Faces 技术。 CDI 设计用于与有状态对象一起使用,还具有许多更广泛的用途,允许开发人员以松散耦合但类型安全的方式集成不同类型的组件。

    Java EE 7 平台需要 CDI 1.1。

    Java 依赖注入

    Java 依赖注入定义了一组标注(和一个接口),用于可注入类上的使用。

    在 Java EE 平台中,CDI 提供了对依赖注入的支持。具体而言,您只能在启用 CDI 的应用程序中使用注入点。

    Java EE 7 平台需要 Java 依赖注入 1.0。

    Bean 验证

    Bean 验证规范定义了 JavaBeans 组件中验证数据的元数据模型和 API。可以将数据验证约束定义在一个地方并在不同层之间共享,而不是在多个层(如浏览器和服务器端)上分发验证。

    Java EE 7 平台需要 Bean 验证 1.1。

    Java 消息服务 API

    Java 消息服务(JMS)API 是一种消息标准,允许 Java EE 应用程序组件创建、发送、接收和读取消息。它实现了松散耦合、可靠和异步的分布式通信。

    在平台中,JMS 的新特性包括以下内容:

    • 一个新的简化 API 提供了先前 API 的简单替代方案。此 API 包括将 Connection 和 Session 功能合并的 JMSContext 对象。

    • 所有具有 close 方法的对象都实现了 java.lang.Autocloseable 接口,以便可以在 Java SE 7 的 try-with-resources 语句中使用它们。

    Java EE 7 平台需要 JMS 2.0。

    Java EE Connector Architecture

    Java EE连接器架构用于创建支持访问企业信息系统的资源适配器,这些适配器可以插入到任何Java EE产品中。资源适配器是允许Java EE应用程序组件访问和与EIS底层资源管理器交互的软件组件。由于资源适配器特定于其资源管理器,因此不同类型的数据库或企业信息系统通常存在不同的资源适配器。

    Java EE连接器架构还提供了基于消息传递、性能优化、安全、可扩展的Java EE平台的Web服务与现有的EIS之间的事务集成,这些集成可以是同步或异步的。通过Java EE连接器架构将现有应用程序和EIS集成到Java EE平台中,可以使用JAX-WS和Java EE组件模型将其公开为基于XML的Web服务。因此,JAX-WS和Java EE连接器架构是企业应用程序集成(EAI)和端到端业务集成的互补技术。

    Java EE 7平台需要Java EE连接器架构1.7。

    JavaMail API

    Java EE应用程序使用JavaMail API发送电子邮件通知。JavaMail API有两个部分:

    • 应用程序级接口用于应用程序组件发送邮件

    • 服务提供商接口

    Java EE平台包括带有服务提供程序的JavaMail API,允许应用程序组件发送Internet邮件。

    Java EE 7平台需要JavaMail 1.5。

    Java Authorization Contract for Containers

    Java Authorization Contract for Containers (JACC)规范定义了Java EE应用服务器和授权策略提供者之间的协定。所有Java EE容器都支持此协定。

    JACC规范定义了满足Java EE授权模型的java.security.Permission类。规范定义了容器访问决策与这些权限类实例操作之间的绑定。它定义了使用新权限类来解决Java EE平台授权要求的策略提供者的语义,包括角色的定义和使用。

    Java EE 7平台需要JACC 1.5。

    Java Authentication Service Provider Interface for Containers

    Java Authentication Service Provider Interface for Containers (JASPIC)规范定义了一种服务提供程序接口(SPI),该接口可以将实现消息认证机制的身份验证提供程序集成到客户端或服务器消息处理容器或运行时中。通过此接口集成的身份验证提供程序在其调用容器提供的网络消息上操作。身份验证提供程序转换出站消息,以便接收容器可以对每个消息源进行身份验证,并且消息发送者的接收者可以进行身份验证。身份验证提供程序对每个传入消息进行身份验证,并将建立的标识作为消息身份验证结果返回给其调用容器。

    Java EE 7平台需要JASPIC 1.1。

    Java WebSocket API

    WebSocket是一种应用协议,提供了TCP连接下两个对等体之间的双向通信。Java WebSocket API使Java EE应用程序能够使用注释创建端点,指定端点的配置参数并指定其生命周期回调方法。

    WebSocket API是Java EE 7平台上的新技术。Java EE 7平台需要Java WebSocket API 1.0。

    Java JSON处理API

    JSON是一种基于JavaScript的文本数据交换格式,用于Web服务和其他连接应用程序中。Java JSON处理API (JSON-P) 可以使用对象模型或流模型解析、转换和查询JSON数据,使Java EE应用程序具备这些功能。

    JSON-P是Java EE 7平台上的新技术。Java EE 7平台需要JSON-P 1.0。

    Java EE中的并发工具

    Java EE中的并发工具是一个标准API,用于通过以下类型的对象为Java EE应用程序组件提供异步功能:托管执行器服务、托管计划执行器服务、托管线程工厂和上下文服务。

    Java EE中的并发工具是Java EE 7平台上的新技术。Java EE 7平台需要Java EE中的并发工具1.0。

    Java平台的批处理应用程序

    批处理作业是可以在没有用户交互的情况下执行的任务。Java平台的批处理应用程序规范是一个批处理框架,提供了在Java应用程序中创建和运行批处理作业的支持。批处理框架包括批处理运行时、基于XML的作业规范语言、Java API与批处理运行时进行交互以及实现批处理组件的Java API。

    Java平台的批处理应用程序是Java EE 7平台上的新技术。Java EE 7平台需要Java平台的批处理应用程序1.0。

    另请参阅

    要查看旧版Java EE版本的技术,请查看以下链接:


    @cassiomolin,EJB 3.2链接指向的位置不正确。应该是https://www.jcp.org/en/jsr/detail?id=345如果我编辑它,会提示我必须编辑更多字符才能考虑我的编辑。 - ktulinho
    1
    @ktulinho 很好的发现!我刚刚修复了链接 :) - cassiomolin

    22

    重要提示:虽然此答案仍然有效,但您可能还想检查以下内容:
    Jakarta EE 8技术列表;
    Jakarta EE 9技术列表。


    Java EE 8技术

    Java EE 8在Java EE 7的基础上进行了改进(有关详细信息,请参见早期答案),并现代化支持许多行业标准,并继续简化企业级API。

    增强功能包括:

    • 带有HTTP/2支持的Java Servlet 4.0 API
    • 增强的JSON支持,包括新的JSON绑定API
    • 新的REST Reactive Client API
    • 异步CDI事件
    • 新的可移植安全API
    • 支持Server-Sent Events(客户端和服务器端)
    • 支持Java SE 8的新功能(例如Data & Time API、Streams API、注释增强)

    以下JSR在Java EE 8中新增更新

    • Java EE 平台

    • Web 应用技术

      • JSR 367: Java API for JSON Binding (JSON-B) 1.0
      • JSR 374: Java API for JSON Processing (JSON-P) 1.1
      • JSR 369: Java Servlet 4.0
      • JSR 372: JavaServer Faces (JSF) 2.3
    • 企业应用技术

    • Web 服务技术

      • JSR 370: Java API for RESTful Web Services (JAX-RS) 2.1
    • 管理和安全技术

      • JSR 375: Java EE Security API 1.0

    如需更多详细信息,请参考此page

    每种技术的简介

    要了解上述主要技术的更多信息,请查看Java EE教程。并且可以在此page中找到对主要技术的良好概述。仅引用如下:

    Enterprise JavaBeans Technology

    An Enterprise JavaBeans (EJB) component, or enterprise bean, is a body of code that has fields and methods to implement modules of business logic. You can think of an enterprise bean as a building block that can be used alone or with other enterprise beans to execute business logic on the Java EE server.

    Enterprise beans are either session beans or message-driven beans.

    • A session bean represents a transient conversation with a client. When the client finishes executing, the session bean and its data are gone.
    • A message-driven bean combines features of a session bean and a message listener, allowing a business component to receive messages asynchronously. Commonly, these are Java Message Service (JMS) messages.

    The Java EE 8 platform requires Enterprise JavaBeans 3.2 and Interceptors 1.2. The Interceptors specification is part of the EJB specification.

    Java Servlet Technology

    Java Servlet technology lets you define HTTP-specific servlet classes. A servlet class extends the capabilities of servers that host applications accessed by way of a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by web servers.

    In the Java EE 8 platform, new Java Servlet technology features include the following:

    • Server Push
    • HTTP Trailer

    The Java EE 8 platform requires Servlet 4.0

    JavaServer Faces Technology

    JavaServer Faces technology is a user interface framework for building web applications. The main components of JavaServer Faces technology are as follows:

    • A GUI component framework.
    • A flexible model for rendering components in different kinds of HTML or different markup languages and technologies. A Renderer object generates the markup to render the component and converts the data stored in a model object to types that can be represented in a view.
    • A standard RenderKit for generating HTML 4.01 markup.

    The following features support the GUI components:

    • Input validation
    • Event handling
    • Data conversion between model objects and components
    • Managed model object creation
    • Page navigation configuration
    • Expression Language (EL)

    All this functionality is available using standard Java APIs and XML-based configuration files.

    In the Java EE 8 platform, new features of JavaServer Faces technology include the following:

    • Direct support for WebSockets via the new <f:websocket> tag
    • Class-level bean validation via the new <f:validateWholeBean> tag
    • A CDI-compatible @ManagedProperty annotation
    • Enhanced component search expression framework

    The Java EE 8 platform requires JavaServer Faces 2.3 and Expression Language 3.0.

    For an excellent summary of what’s new in JSF 2.3, see https://javaserverfaces.github.io/whats-new-in-jsf23.html.

    JavaServer Pages Technology

    JavaServer Pages (JSP) technology lets you put snippets of servlet code directly into a text-based document. A JSP page is a text-based document that contains two types of text:

    • Static data, which can be expressed in any text-based format, such as HTML or XML
    • JSP elements, which determine how the page constructs dynamic content

    For information about JSP technology, see The Java EE 5 Tutorial at http://docs.oracle.com/javaee/5/tutorial/doc/.

    The Java EE 8 platform requires JavaServer Pages 2.3 for compatibility with earlier releases but recommends the use of Facelets as the display technology in new applications.

    JavaServer Pages Standard Tag Library

    The JavaServer Pages Standard Tag Library (JSTL) encapsulates core functionality common to many JSP applications. Instead of mixing tags from numerous vendors in your JSP applications, you use a single, standard set of tags. This standardization allows you to deploy your applications on any JSP container that supports JSTL and makes it more likely that the implementation of the tags is optimized.

    JSTL has iterator and conditional tags for handling flow control, tags for manipulating XML documents, internationalization tags, tags for accessing databases using SQL, and tags for commonly used functions.

    The Java EE 8 platform requires JSTL 1.2.

    Java Persistence API

    The Java Persistence API (JPA) is a Java standards–based solution for persistence. Persistence uses an object/relational mapping approach to bridge the gap between an object-oriented model and a relational database. The Java Persistence API can also be used in Java SE applications outside of the Java EE environment. Java Persistence consists of the following areas:

    • The Java Persistence API
    • The query language
    • Object/relational mapping metadata

    The Java EE 8 platform requires Java Persistence API 2.2.

    Java Transaction API

    The Java Transaction API (JTA) provides a standard interface for demarcating transactions. The Java EE architecture provides a default auto commit to handle transaction commits and rollbacks. An auto commit means that any other applications that are viewing data will see the updated data after each database read or write operation. However, if your application performs two separate database access operations that depend on each other, you will want to use the JTA API to demarcate where the entire transaction, including both operations, begins, rolls back, and commits.

    The Java EE 8 platform requires Java Transaction API 1.2.

    Java API for RESTful Web Services

    The Java API for RESTful Web Services (JAX-RS) defines APIs for the development of web services built according to the Representational State Transfer (REST) architectural style. A JAX-RS application is a web application that consists of classes packaged as a servlet in a WAR file along with required libraries.

    In the Java EE 8 platform, new RESTful web services features include the following:

    • Reactive Client API: When the results of an invocation on a target resource are received, enhancements to the completion stage APIs in Java SE allow the sequence of those results to be specified, prioritized, combined, or concatenated, and how exceptions can be handled.
    • Enhancements in support for server-sent events: Clients may subscribe to server-issued event notifications using a long-running connection. Support for a new media type, text/event-stream, has been added.
    • Support for JSON-B objects, and improved integration with CDI, Servlet, and Bean Validation technologies

    The Java EE 8 platform requires JAX-RS 2.1.

    Managed Beans

    Managed Beans, lightweight container-managed objects (POJOs) with minimal requirements, support a small set of basic services, such as resource injection, lifecycle callbacks, and interceptors. Managed Beans represent a generalization of the managed beans specified by JavaServer Faces technology and can be used anywhere in a Java EE application, not just in web modules.

    The Managed Beans specification is part of the Java EE 8 platform specification (JSR 366). The Java EE 8 platform requires Managed Beans 1.0.

    Contexts and Dependency Injection for Java EE

    Contexts and Dependency Injection for Java EE (CDI) defines a set of contextual services, provided by Java EE containers, that make it easy for developers to use enterprise beans along with JavaServer Faces technology in web applications. Designed for use with stateful objects, CDI also has many broader uses, allowing developers a great deal of flexibility to integrate different kinds of components in a loosely coupled but typesafe way.

    In the Java EE 8 platform, new CDI features include the following:

    • An API for bootstrapping a CDI container in Java SE 8
    • Support for observer ordering, which determines the order in which the observer methods for a particular event are invoked, and support for firing events asynchronously
    • Configurators interfaces, which are used for dynamically defining and modifying CDI objects
    • Built-in annotation literals, a convenience feature for creating instances of annotations, and more

    The Java EE 8 platform requires CDI 2.0.

    Dependency Injection for Java

    Dependency Injection for Java defines a standard set of annotations (and one interface) for use on injectable classes.

    In the Java EE platform, CDI provides support for Dependency Injection. Specifically, you can use injection points only in a CDI-enabled application.

    The Java EE 8 platform requires Dependency Injection for Java 1.0.

    Bean Validation

    The Bean Validation specification defines a metadata model and API for validating data in JavaBeans components. Instead of distributing validation of data over several layers, such as the browser and the server side, you can define the validation constraints in one place and share them across the different layers.

    In the Java EE 8 platform, new Bean Validation features include the following:

    • Support for new features in Java SE 8, such as the Date-Time API
    • Addition of new built-in Bean Validation constraints

    The Java EE 8 platform requires Bean Validation 2.0.

    Java Message Service API

    The Java Message Service (JMS) API is a messaging standard that allows Java EE application components to create, send, receive, and read messages. It enables distributed communication that is loosely coupled, reliable, and asynchronous.

    The Java EE 8 platform requires JMS 2.0.

    Java EE Connector Architecture

    The Java EE Connector Architecture is used by tools vendors and system integrators to create resource adapters that support access to enterprise information systems that can be plugged in to any Java EE product. A resource adapter is a software component that allows Java EE application components to access and interact with the underlying resource manager of the EIS. Because a resource adapter is specific to its resource manager, a different resource adapter typically exists for each type of database or enterprise information system.

    The Java EE Connector Architecture also provides a performance-oriented, secure, scalable, and message-based transactional integration of Java EE platform–based web services with existing EISs that can be either synchronous or asynchronous. Existing applications and EISs integrated through the Java EE Connector Architecture into the Java EE platform can be exposed as XML-based web services by using JAX-WS and Java EE component models. Thus JAX-WS and the Java EE Connector Architecture are complementary technologies for enterprise application integration (EAI) and end-to-end business integration.

    The Java EE 8 platform requires Java EE Connector Architecture 1.7.

    JavaMail API

    Java EE applications use the JavaMail API to send email notifications. The JavaMail API has two parts:

    • An application-level interface used by the application components to send mail
    • A service provider interface

    The Java EE platform includes the JavaMail API with a service provider that allows application components to send Internet mail.

    The Java EE 8 platform requires JavaMail 1.6.

    Java Authorization Contract for Containers

    The Java Authorization Contract for Containers (JACC) specification defines a contract between a Java EE application server and an authorization policy provider. All Java EE containers support this contract.

    The JACC specification defines java.security.Permission classes that satisfy the Java EE authorization model. The specification defines the binding of container-access decisions to operations on instances of these permission classes. It defines the semantics of policy providers that use the new permission classes to address the authorization requirements of the Java EE platform, including the definition and use of roles.

    The Java EE 8 platform requires JACC 1.5.

    Java Authentication Service Provider Interface for Containers

    The Java Authentication Service Provider Interface for Containers (JASPIC) specification defines a service provider interface (SPI) by which authentication providers that implement message authentication mechanisms may be integrated in client or server message-processing containers or runtimes. Authentication providers integrated through this interface operate on network messages provided to them by their calling containers. The authentication providers transform outgoing messages so that the source of each message can be authenticated by the receiving container, and the recipient of the message can be authenticated by the message sender. Authentication providers authenticate each incoming message and return to their calling containers the identity established as a result of the message authentication.

    The Java EE 8 platform requires JASPIC 1.1.

    Java EE Security API

    The purpose of the Java EE Security API specification is to modernize and simplify the security APIs by simultaneously establishing common approaches and mechanisms and removing the more complex APIs from the developer view where possible. Java EE Security introduces the following APIs:

    • SecurityContext interface: Provides a common, uniform access point that enables an application to test aspects of caller data and grant or deny access to resources.
    • HttpAuthenticationMechanism interface: Authenticates callers of a web application, and is specified only for use in the servlet container.
    • IdentityStore interface: Provides an abstraction of an identity store and that can be used to authenticate users and retrieve caller groups.

    The Java EE 8 platform requires Java EE Security API 1.0.

    Java API for WebSocket

    WebSocket is an application protocol that provides full-duplex communications between two peers over TCP. The Java API for WebSocket enables Java EE applications to create endpoints using annotations that specify the configuration parameters of the endpoint and designate its lifecycle callback methods.

    The Java EE 8 platform requires Java API for WebSocket 1.1.

    Java API for JSON Processing

    JavaScript Object Notation (JSON) is a text-based data exchange format derived from JavaScript that is used in web services and other connected applications. The Java API for JSON Processing (JSON-P) enables Java EE applications to parse, transform, and query JSON data using the object model or the streaming model.

    In the Java EE 8 platform, new features of JSON-P include support for the following:

    • JSON Pointer: Defines a string syntax for referencing a specific value within a JSON document. JSON Pointer includes APIs for extracting values from a target document and transforming them to create a new JSON document.

    • JSON Patch: Defines a format for expressing a sequence of operations to be applied to a JSON document.

    • JSON Merge Patch: Defines a format and processing rules for applying operations to a JSON document that are based upon specific content of the target document.

    • The addition of editing and transformation functions to basic JSON document processing.

    • Helper classes and methods, called JSON Collectors, which leverage features of the Stream API that was introduced in Java SE 8.

    The Java EE 8 platform requires JSON-P 1.1.

    Java API for JSON Binding

    The Java API for JSON Binding (JSON-B) provides a binding layer for converting Java objects to and from JSON messages. JSON-B also supports the ability to customize the default mapping process used in this binding layer through the use of Java annotations for a given field, JavaBean property, type or package, or by providing an implementation of a property naming strategy.

    JSON-B is new to the Java EE 8 platform. The Java EE 8 platform requires JSON-B 1.0.

    Concurrency Utilities for Java EE

    Concurrency Utilities for Java EE is a standard API for providing asynchronous capabilities to Java EE application components through the following types of objects: managed executor service, managed scheduled executor service, managed thread factory, and context service.

    The Java EE 8 platform requires Concurrency Utilities for Java EE 1.0.

    Batch Applications for the Java Platform

    Batch jobs are tasks that can be executed without user interaction. The Batch Applications for the Java Platform specification is a batch framework that provides support for creating and running batch jobs in Java applications. The batch framework consists of a batch runtime, a job specification language based on XML, a Java API to interact with the batch runtime, and a Java API to implement batch artifacts.

    The Java EE 8 platform requires Batch Applications for the Java Platform 1.0.


    4

    Jakarta EE 9技术

    根据规范,Jakarta EE 9发布的目标是在新的Jakarta EE 9命名空间jakarta.*中提供与Jakarta EE 8功能类似的一组规范。

    此外,Jakarta EE 9版本从Jakarta EE 8中移除了少量的规范,这些规范已经过时、可选或陈旧,以减少API表面积,确保新供应商更容易进入生态系统,并减轻这些旧API的实现、迁移和维护负担。

    Jakarta EE 9主要是一个工具版本:

    • 工具供应商可以使用该平台创建和更新其工具以支持新的jakarta.*命名空间。

    • 开发团队可以将其用作稳定目标来测试将其应用程序迁移到新命名空间的过程。

    • 运行时供应商可以使用该平台来测试并提供支持迁移和向后兼容性的选项和功能,以支持Jakarta EE 8。

    • Jakarta EE规范项目可以使用它作为创新的基础,以驱动发布于Jakarta EE 10及其以上版本的新功能。

    规范列出了所有属于Jakarta EE 9的技术:

    要求使用以下技术:
    • Jakarta Enterprise Beans 4.0(除了 Jakarta Enterprise Beans 实体 beans 和相关 Jakarta Enterprise Beans QL,这些是可选的)

    • Jakarta Servlet 5.0

    • Jakarta Server Pages 3.0

    • Jakarta Expression Language 4.0

    • Jakarta Messaging 3.0

    • Jakarta Transactions 2.0

    • Jakarta Activation 2.0

    • Jakarta Mail 2.0

    • Jakarta Connectors 2.0

    • Jakarta RESTful Web Services 3.0

    • Jakarta WebSocket 2.0

    • Jakarta JSON Processing 2.0

    • Jakarta JSON Binding 2.0

    • Jakarta Concurrency 2.0

    • Jakarta Batch 2.0

    • Jakarta Authorization 2.0

    • Jakarta Authentication 2.0

    • Jakarta Security 2.0

    • Jakarta Debugging Support for Other Languages 2.0

    • Jakarta Standard Tag Library 2.0

    • Jakarta Server Faces 3.0

    • Jakarta Annotations 2.0

    • Jakarta Persistence 3.0

    • Jakarta Bean Validation 3.0

    • Jakarta Managed Beans 2.0

    • Jakarta Interceptors 2.0

    • Jakarta Contexts and Dependency Injection 3.0

    • Jakarta Dependency Injection 2.0

    以下技术是可选的:
    • Jakarta Enterprise Beans 3.2 和之前版本的实体 beans 及相关 Jakarta Enterprise Beans QL

    • Jakarta Enterprise Beans 2.x API 组

    • Jakarta Enterprise Web Services 2.0

    • Jakarta SOAP with Attachments 2.0

    • Jakarta Web Services Metadata 3.0

    • Jakarta XML Web Services 3.0

    • Jakarta XML Binding 3.0

    以下技术已被删除:
    • 在 Jakarta Enterprise Beans 3.2 核心规范第10章中的分布式互操作性

    • Jakarta XML RPC 1.1

    • Jakarta XML Registries 1.0

    • Jakarta Deployment 1.2

    • Jakarta Management 1.1

    Jakarta EE 9架构

    下面的图片摘自Jakarta EE 9 规范页面,展示了这些技术之间的逻辑关系。它并不意味着将元素物理上分成独立的机器、进程、地址空间或虚拟机。

    从规范中可以得知:

    容器由单独的矩形表示,是提供必要服务给应用程序组件的 Jakarta EE 运行时环境。提供的服务由矩形下半部分中的框表示。例如,应用程序客户端容器向应用程序客户端提供 Jakarta Messaging API,以及其他代表的服务。所有这些服务都在下面解释。请参见Jakarta EE标准服务

    箭头表示对Jakarta EE平台其他部分的必要访问。应用程序客户端容器通过Java API直接为应用程序客户端提供访问Jakarta EE所需的数据库,即JDBC™ API。类似地,Web容器为服务器页面、服务器面向对象应用程序和Servlet提供对数据库的访问,企业Bean容器则为企业Bean提供对数据库的访问。

    正如所示,Java™平台标准版(Java SE)的API由每种类型的应用程序组件的Java SE运行时环境支持。

    Jakarta EE 9 architecture


    1

    重要提示:虽然这个回答仍然是有效的,但你可能也想查看Jakarta EE 9技术列表。


    Jakarta EE 8 技术

    Java EE 是由 Oracle 在 JCP(Java Community Process)下维护的。2017 年 9 月,Oracle 宣布 将 Java EE 提交给 Eclipse 基金会,这些技术现在正在以 Jakarta EE 品牌下发展(因为 Oracle 仍然拥有“Java”名称的商标)。

    Jakarta EE 8 是将 Java EE 8 从 JCP 迁移到 Eclipse 基金会的过程。有关详细信息,请参阅 规范

    下表摘自规范,显示了最后一个 Java EE 8 平台规范(日期为 2017 年 7 月 31 日)和 Jakarta EE 8 平台规范中引用的规范名称和版本之间的差异。

    在某些情况下,版本在为贡献做准备时发生了变化,因此官方JCP版本也发生了变化,超过了2017年7月31日平台规范中引用的版本。在其他情况下,版本是在贡献后更改的。无论名称或版本如何更改,Java EE 8和Jakarta EE 8在功能上是等效的。
    Java EE 8 规范 Jakarta EE 8 规范
    Java™ Platform, Enterprise Edition 8 Jakarta™ EE 平台 8
    Enterprise JavaBeans™ 3.2 Jakarta™ Enterprise Beans 3.2
    Java™ 平台公共注解 1.3 Jakarta™ 注解 1.3
    Java™ Servlet 4.0 Jakarta™ Servlet 4.0
    Java API for WebSocket 1.1 Jakarta™ WebSocket 1.1
    JavaServer Faces 2.3 Jakarta™ Server Faces 2.3
    JavaServer Pages™ 2.3 Jakarta™ Server Pages 2.3
    JavaServer Pages标准标记库 1.2 Jakarta™ 标准标记库 1.2
    表达式语言 3.0 Jakarta™ 表达式语言 3.0
    支持其他语言的调试 1.0 Jakarta™ 支持其他语言的调试 1.0
    Java™ 消息服务 2.0 Jakarta™ 消息 2.0
    Java™ 事务 API 1.2 Jakarta™ 事务 1.3
    JavaMail™ API 1.6 Jakarta™ 邮件 1.6
    Java EE™ 连接器体系结构 1.7 Jakarta™ 连接器 1.7
    为 Java EE 的 Web 服务 1.4 Jakarta™ 企业 Web 服务 1.4
    Java™ XML-RPC API 1.1 Jakarta™ XML RPC 1.1
    Java™ XML 注册表 API 1.0 Jakarta™ XML 注册表 1.0
    Java™ RESTful Web 服务 2.1 Jakarta™ RESTful Web 服务 2.1
    Java API for JSON Processing 1.1 Jakarta™ JSON 处理 1.1
    Java API for JSON Binding 1.0 Jakarta™ JSON 绑定 1.0
    Java™ 平台,企业版管理 1.1 Jakarta™ 管理 1.1
    Java™ 平台,企业版部署 1.2 Jakarta™ 部署 1.7
    Java™ 容器授权服务提供者契约 1.5 Jakarta™ 授权 1.5
    Java™ 容器身份验证服务提供者接口 1.1 Jakarta™ 身份验证 1.1
    Java™ EE 安全 API 1.0 Jakarta™ 安全 1.0
    Java Persistence 2.2 Jakarta™ 持久化 2.2

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接