3

通常我们将单例实例用于业务/ dao 层。在 EJB 的情况下,池化无状态会话 bean 的原因是什么?

4

2 回答 2

3

名称中的“无状态”是指会话会话状态,即在 bean 调用之间持续存在的状态,在会话期间保留。但是,仍然允许无状态会话 bean 具有实例变量。这些实例变量不应该与对话状态相关,而是在客户端之间“共享”。

换句话说,无状态会话 bean 不能保证线程安全。

因此,容器应该确保一次只有一个线程在执行给定的无状态会话 bean 实例,因此需要一个它们的池。

于 2009-11-13T10:48:24.723 回答
2
  • 因为它们的构建成本很高,通常需要访问数据库、消息队列等外部资源。
  • 因为您不希望创建无限数量的它们,否则您将耗尽资源
  • 这样容器就可以为你管理线程安全
于 2009-11-13T11:05:59.960 回答