与POJO相比,使用EJB有什么好处?

时间:2013-03-24 22:48:38

标签: java java-ee ejb pojo

我为什么要使用EJB?我能从中得到什么,我无法通过其他方式获得?

与POJO相比,使用EJB有什么好处?

1 个答案:

答案 0 :(得分:7)

EJBs由Java EE应用程序服务器管理和监视,它负责通过依赖注入和管理lifecycles来创建客户端并将其提供给客户端。 EJB由池中的app-server保存。每次客户端获取EJB时,app-server从池中选择一个并将其分配给客户端。客户端完成后(客户端没有引用它),它将返回到池中,并准备分配给其他客户端。

池对于应用程序的可伸缩性非常重要。您不必为已部署的应用程序更改任何内容以处理不断增长的负载,并且如果由于资源量有限而导致负载过高,您的应用程序将不会使应用程序服务器瘫痪。一切都是通过配置应用服务器来完成的。

EJB可以 - 如果相应地注释 - 处理事务和异步执行,并且可以暴露给远程客户端。

有四种类型的EJB:

会话bean

  1. Stateless EJBs:让客户端执行某些操作并返回,不能用于保持状态,因为服务器可能会将其分配给其他客户端(您可以将其用作客户端之间的通信类型,例如,如果您有一个实例变量,将其设置为一个值,然后其他客户端可以看到此值)。您可以将无状态EJB方法视为功能编程或类的静态方法。
  2. Statefull EJBs:允许客户端跨多个请求维护状态(客户端必须保留对它的引用,否则应用服务器可能会将其分配给另一个客户端)
  3. Singleton EJBs:正如名称所示,服务器保证此实例对整个应用程序而言是唯一的。
  4. 消息驱动的bean

    1. Message driven EJBs:也是无状态的,通常与JMS结合使用来发送和接收消息。消息处理程序函数以异步方式执行。
    2. 虽然EBJ提供了所有这些以及其他可能的东西,但POJO只是POJO,而不是更多。