为什么ejb容器会创建一个无状态ejbs池,如果它们是无状态的?

时间:2014-10-08 08:19:08

标签: thread-safety ejb

HY,

它说你不必担心无状态EJB是否是线程安全的,因为容器为每个请求都有一个不同实例的池,但如果它们是无状态的,并且没有多个线程只能访问一个ejb的危险,< / p>

  • 为什么容器会创建一个池而不仅仅是一个?

由于

2 个答案:

答案 0 :(得分:0)

StatelessConcurrency是两回事:

线程安全确保其他线程不会污染先前线程已处理的内容

无状态是指您的功能不关心(需要知道)已处理的系统。或者只是声明该功能只需要它携带的参数

答案 1 :(得分:0)

无状态会话bean从客户端角度来看没有状态 。 EJB规范允许无状态bean具有状态,但客户端无法控制它们获得的实例,因此它们不能依赖于每次都获取相同的实例。

在EJB 3.1中,&#34; singleton&#34;添加了会话bean类型,它与SingleThreadModel servlet大致相同。也就是说,创建了一个所有客户端都使用的bean实例,但与servlet不同,默认的并发模型是一次只有一个客户端可以访问bean,但是这可以更改(@ConcurrencyManagement和{{1 }})。