EJB 架构 Java

17 Mar 2025 | 4 分钟阅读

Java beans 将一组对象合并成一个可从任何应用程序轻松访问的对象。 这个单一的可访问对象是可维护、可定制和可重用的。 setter/getter 方法和单个公共构造函数用于管理该单个可访问对象。 我们可以分别使用 setter 和 getter 来更新和读取任何对象的任何变量的值。

EJB 代表 企业 Java beans,它是一种基于服务器的架构,遵循企业环境的规范和要求。 EJB 在概念上基于 Java RMI(远程方法调用)规范。 在 EJB 中,beans 在具有四层架构的容器中运行。 该架构由四层组成,即客户端层、Web 层、应用程序层和数据层。

架构

EJB 架构有两个主要层,即 应用程序服务器EJB 容器,EJB 架构基于这两层存在。 下面给出了 EJB 架构的图形表示。

EJB Architecture Java

在上图中,定义了使用 RMI(远程方法调用)调用和部署 EJB 的逻辑表示。 EJB 的容器不能自部署。 为了部署容器,它需要应用程序服务器。

应用程序服务器

在 EJB 架构中,应用程序服务器是包含或包含要部署的容器的最外层。 应用程序层在执行使用 beans 开发的应用程序中起着重要作用。 它提供了执行这些应用程序的必要环境。 一些最流行的应用程序服务器是 Web-logic、Tomcat、JBoss、Web-sphere、Wildfly 和 Glass-finish。 应用程序服务器的主要任务是

  1. 管理接口
  2. 流程的执行
  3. 连接到数据库
  4. 管理其他资源。

容器

在 EJB 架构中,容器是第二外层。 它是企业 bean 的一个非常重要的层,它包含在其中。 对于企业 bean,容器提供各种支持服务,如下所示

  • 它为事务性服务提供支持,例如注册对象、分配远程接口、清除实例。
  • 它为监视对象活动和协调分布式组件提供支持。
  • 它为安全服务提供支持。
  • 它为资源池提供支持。
  • 它为管理 beans 的生命周期及其并发性提供支持。
  • 它提供支持以专注于业务逻辑。

Beans

企业 Java beans 以与将普通旧 Java 对象 (POJO) 安装并注册到容器相同的方式安装在容器中。 对于开发安全的、大规模的和强大的业务应用程序,beans 提供业务逻辑。

EJB 类型

以下是三种类型的 企业 Java BeanEJB

  1. 无状态企业 Java Beans
  2. 有状态企业 Java Beans
  3. 消息驱动的企业 Java Beans

无状态 EJB

为了实现无状态业务逻辑,主要使用 无状态 EJB。 将用户的实际地址存储到库存系统的数据库中是无状态 EJB 的一个例子。 此外,无状态 bean 非常适合此类业务逻辑,因为它不需要在交易的所有阶段的用户界面上有两种以上的形式。

StatelessBeanExample.java

有状态 EJB

有状态 EJB无状态 EJB 恰好相反。 当我们必须在用户会话期间在后端维护应用程序的状态时,会使用 有状态 EJB。 在线购物应用程序的购物车是有状态 EJB 的一个例子。 为了实现这样的应用程序,我们将使用以下步骤

  1. 我们将创建有状态会话 bean。
  2. 之后,为了在用户会话中暂时存储后端选择的产品,我们必须创建一个全局变量集合,类型为产品。
  3. 接下来,我们将创建一个方法,通过该方法我们将把所有选定的产品添加到我们在上一步中创建的集合中。
  4. 我们还创建一个方法,通过该方法我们可以从集合中删除产品。
  5. 最后,我们将创建一个用于处理所选产品的结帐方法。

StatelessBeanExample.java

消息驱动的 EJB

另一种特殊类型的 EJB 用于从消息代理发送和接收消息,它实现了 JMS 规范。 基于代理的系统是松散耦合的。 通过代理通信的组件具有在提交另一个请求之前不必等待一个请求完成的优势,因为代理本质上是异步的。

MessageDrivenBeanExample.java

EJB 和 JB 之间的区别

以下是 EJB 和 JB 之间的区别

序号EJBJB
1.EJB 不可见,因为它作为远程运行。JB 可见。
2.EJB 在服务器端执行。EJB 可以在客户端和服务器端执行。
3.EJB 使用外部构建器工具或其 IDE。为了解释 bean 的功能,EJB 使用其外部接口。
4.EJB 使用组件技术,但不能在其之上构建或扩展它。通过使用 Java beans 创建的通用组件,它能够构建 applet 和应用程序。
5.它没有属性编辑器、定制器和 bean 信息类。 它只有关于部署描述符提供的内容的信息。它具有属性编辑器、定制器和 bean 信息类。
6.它支持事务。它不支持事务。
7.三种 EJB 可能的类型。无类型。

下一个主题EJB 的类型