【发布时间】:2013-03-24 22:48:37
【问题描述】:
我为什么要使用 EJB?我能从中得到什么是其他方式无法得到的?
与 POJO 相比,使用 EJB 有什么优势?
【问题讨论】:
-
声明式分布式事务、声明式安全、依赖注入、自动线程安全、有状态bean、钝化和激活、远程处理等
标签: java jakarta-ee ejb pojo
我为什么要使用 EJB?我能从中得到什么是其他方式无法得到的?
与 POJO 相比,使用 EJB 有什么优势?
【问题讨论】:
标签: java jakarta-ee ejb pojo
EJBs 由 Java EE 应用服务器管理和监控,它负责通过依赖注入创建并提供给客户端,并管理它们的lifecycles。 EJB 由应用程序服务器保存在池中。每次客户端获取 EJB 时,应用程序服务器都会从池中挑选一个并将其分配给客户端。客户端完成后(客户端没有对它的引用),它被返回到池中并准备分配给其他客户端。
池对于应用程序的可扩展性非常重要。您不必对已部署的应用程序进行任何更改来处理不断增长的负载,并且如果负载过高,您的应用程序不会让应用服务器屈服,因为资源量是有限的。一切都是通过配置应用服务器来完成的。
如果有相应的注释,EJB 可以处理事务和异步执行,并且可以暴露给远程客户端。
有四种类型的 EJB:
会话 bean
消息驱动 bean
虽然 EBJ 提供了所有这些,并且可能提供其他东西,但 POJO 只是 POJO,仅此而已。
【讨论】:
@Remove 方法后,它可能会被重新设置和重新分配。更典型的是,另一个客户端会得到一个新的 bean,因为池化对于 Stateless bean 来说更常见。
@LocalBean 用于 Statefull 会话 bean 所做的一些测试。我只能通过将其放入(网络)会话来保持状态。
Session bean 中的 session 是什么?如果您有进一步阅读的链接,我将不胜感激!
session 起源于只有有状态和实体 bean 的时代(它们也是有状态的)。它们是 RMI 应用程序的一种 http 会话。