为什么池无状态豆?

时间:2009-11-13 10:40:19

标签: java ejb-3.0 ejb stateless-session-bean

通常我们将singleton实例用于business / dao层。在EJB的情况下汇集无状态会话bean的原因是什么?

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

  • 因为它们构建起来很昂贵,所以通常需要访问外部资源,如数据库,消息队列等。
  • 因为您不希望创建无限数量的数据,否则您将耗尽资源
  • 这样容器可以为您管理线程安全