什么是 EJB (Enterprise Java Bean)?

2025 年 3 月 25 日 | 阅读 2 分钟

EJB 是 Enterprise Java Bean 的缩写。 它是 Sun Microsystems 提供的一种规范,用于开发安全、健壮和可扩展的分布式应用程序。

要获取有关分布式应用程序的信息,请先访问 RMI 教程

要运行 EJB 应用程序,您需要一个应用服务器(EJB 容器),例如 Jboss、Glassfish、Weblogic、Websphere 等。它执行

  1. 生命周期管理,
  2. 安全性,
  3. 事务管理,以及
  4. 对象池。

EJB 应用程序部署在服务器上,因此也称为服务器端组件。

EJB 类似于 Microsoft 提供的 COM(组件对象模型)。 但是,它与 Java Bean、RMI 和 Web 服务不同。


何时使用 Enterprise Java Bean?

  1. 应用程序需要远程访问。 换句话说,它是分布式的。
  2. 应用程序需要可扩展。 EJB 应用程序支持负载平衡、集群和故障转移。
  3. 应用程序需要封装的业务逻辑。 EJB 应用程序与表示层和持久层分离。

Enterprise Java Bean 的类型

Java 中有 3 种类型的 Enterprise Bean。

会话 Bean

会话 Bean 包含业务逻辑,可以由本地、远程或 Web 服务客户端调用。

消息驱动 Bean

与会话 Bean 类似,它包含业务逻辑,但通过传递消息来调用。

实体 Bean

它封装了可以持久保存在数据库中的状态。 它已被弃用。 现在,它已被 JPA(Java 持久性 API)取代。

Types of Enterprise Bean

RMI 和 EJB 的区别

RMI 和 EJB 都提供从另一个 JVM 访问在另一个 JVM 中运行的对象(称为远程对象)的服务。 RMI 和 EJB 之间的区别如下

RMIEJB
在 RMI 中,中间件服务(如安全性、事务管理、对象池等)需要由 Java 程序员完成。在 EJB 中,中间件服务由 EJB 容器自动提供。
RMI 不是服务器端组件。 无需部署在服务器上。EJB 是服务器端组件,需要部署在服务器上。
RMI 构建在套接字编程之上。EJB 技术构建在 RMI 之上。

EJB 和 Web 服务

在 EJB 中,bean 组件和 bean 客户端都必须用 Java 语言编写。

如果 bean 客户端需要用其他语言(如 .netphp 等)编写,我们需要使用 Web 服务(SOAP 或 REST)。 因此,带有 Web 服务的 EJB 会更好。


EJB 的缺点

  1. 需要应用服务器
  2. 仅需要 Java 客户端。 对于其他语言的客户端,您需要使用 Web 服务。
  3. 难以理解和开发 EJB 应用程序。
下一个主题什么是会话 Bean