EJB:Singleton会话bean或更类似于应用程序bean



我正在再次浏览Javaee7 oracle文档,下面是说明。

"每个应用程序实例化一个singleton会话bean,并为应用程序的生命周期。Singleton会话bean是针对单个企业bean实例由客户。"

我完全理解它在说什么。然而,仔细想想,session这个词在这里是非常误导人的。由于它存在于应用程序级别,因此术语"会话"似乎不适用于此处。

当我想到"会话"这个词时,我认为每个用户都是一个会话。如果这个单例会话bean是跨应用程序的,那么它不应该被称为会话bean吗(相反,可能会更好地理解应用程序bean)。

有什么意见吗?

  • 无状态-会话持续单个客户端操作
  • Stateful-会话在客户端的操作之间持续
  • Singleton-会话在客户端和应用程序之间持续

当我想到"会话"这个词时,我认为每个用户都是会话

在此上下文中,术语"会话"是指工作单元或业务事务。

在Stateless和Singleton bean中,当新请求到达时,会打开新的会话/业务事务,并且它一直存在,直到它发送回客户端的响应为止。(每个请求的会话模式)

对于Stateful会话bean,业务事务可能意味着几个客户端请求。从有状态bean的角度来看,客户端是将请求发送到同一个有状态实例的代理。

编辑(太长,无法发表评论)

我认为ApplicationBean可能是一个好名字,事实上它们非常适合存储应用程序设置,但关键是为什么它们被称为会话Bean。

在此上下文中,"会话"是业务事务执行的时间段。对于Stateless和Singleton,此周期与请求/响应周期相匹配。

如果那个单例会话bean是跨应用程序的,那么它不应该被称为会话bean 吗

Singleton在客户端调用之间保持其状态并不意味着每个请求的会话模型不适用。应用程序中使用的每个Singleton引用都是一个客户端,当客户端发出请求时,将创建一个新的会话

相关内容

  • 没有找到相关文章

最新更新