我们为什么要使用 EJB?[已关闭]

2022-09-01 03:12:19

什么是 EJB,为什么我们应该使用它?请用简单的语言解释。谢谢。


答案 1

EJB 或 Enterprise Java Bean 是普通的 java 类(从 3.0 版开始),带有注释,使您能够编写应用程序的业务逻辑,并在以后将其部署(或安装)到 Java Enterprise Edition Server 上。

如果您希望利用 Java 企业版 (Java EE) 服务器提供的以下服务,则必须考虑使用 EJB:

  • 聚类。您可以在集群环境(依赖于 Java EE 应用程序服务器)上部署 EJB,这为您提供了容错和高可用性。
  • 不使用线程的并发性。所有 EJB 都通过对象池进行实例化,然后您的应用程序可以获得性能,并且没有线程复杂性。
  • 通过 JTA 的事务性。所有EJB都可以从不同资源的事务性管理中受益,这是最重要的数据库,使用注释很容易划定每个事务的边界并对其进行管理。
  • 数据库的连接池。所有 ejb 都可以访问定义到 Java EE 应用程序服务器的连接池,此连接池提供了数据库复杂性的抽象,例如,您可以使用 XA 数据源,使您能够对不同的数据库执行两阶段提交。
  • 安全。所有 ejb 都可以使用 JAAS 来保护应用程序。JAAS 被配置到 Java EE 应用程序服务器中,允许您通过不同的提供程序对 EJB 的方法进行认证和授权,只需进行配置(例如使用 Active Directory、LDAP 或数据库)。
  • 计划服务。所有 ejb 都可以使用定时器服务,该服务使您能够实现任务以进一步执行或包括重复执行。

还有其他服务和好处,但我认为这些是最重要的。如果你不需要这些好处,我的建议是你不要使用EJB(并非所有应用程序都是企业应用程序)。


答案 2

EJB Bean 专门设计用于实现应用程序的业务逻辑。因此,它们提供了在实现此类逻辑时经常需要的服务,例如事务,注入实体管理器(用于JPA,Java Persistence API)和bean池化。

有关更详细的答案和更多参考,请参阅此处:EJB 有什么用

尽可能使用最基本的措辞;“EJB bean 使得通过 JPA 使用数据库变得更加容易”。

在 EJB 之外使用 JPA 需要大量冗长且容易出错的代码来获取实体管理器、启动事务并提交事务或回滚它。

使用 EJB 还有很多其他原因,但根据经验,我认为这是首要原因。


推荐