2011-12-30 108 views
0

在EJB中,由于性能方面的原因,Bean应该是无状态的,那么应用程序服务器可以维护Bean池并将它们分配给请求客户端。Spring的EJB无状态bean

什么是这种类型的豆的春季等效物?在Spring中,我们还有其他的bean范围:单例,原型,请求,会话,全局会话。

+1

除非你有充分的理由使用默认范围 - singleton,这确实是无状态的 – NimChimpsky 2011-12-30 13:56:41

+0

“在EJB中,因为性能方面的原因,bean应该是无状态的” - 我不会那样说。如果您需要有状态或单身豆,那么这就是您需要的。但是,如果你不需要状态 - 然后 - 使用有状态的豆子是一种浪费,你应该坚持无状态的豆子。 – 2011-12-30 19:37:52

+0

@ArjanTijms这就是我想说:) – mmatloka 2011-12-30 21:08:45

回答

2

每个Spring bean都应该作为一个singleton被无状态地实现。不要将状态引入单例bean。汇集这种架构并没有真正的好处。

+0

但是,如果没有真正的共享优势,为什么EJB有无状态bean? – grep 2014-08-30 19:45:41

+0

因为无状态中的“状态”是从客户的角度来看的(例如,调用客户端和它的服务bean之间没有关系,并且每个调用可以由不同的bean服务)。无状态bean可以容纳其他可扩展的资源,例如DB连接。因此,从显而易见的理由来看,它确实是值得的。 – Kousalik 2016-01-31 19:00:07