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

use*_*212 6 java ejb pojo java-ee

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

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

A4L*_*A4L 7

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

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

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

有四种类型的EJB:

会话bean

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

消息驱动的bean

  1. 消息驱动的EJB:也是无状态的,通常与JMS结合使用来发送和接收消息.消息处理程序函数异步执行.

虽然EBJ提供了所有这些以及可能的其他东西,但POJO只是POJO而已,仅此而已.