无状态与有状态的豆子

时间:2012-07-04 06:38:05

标签: java ejb

我仍然不清楚EJB中无状态bean和有状态bean的区别。我应该在哪种情况下使用无状态和有状态的?

2 个答案:

答案 0 :(得分:2)

我会给你很好的例子:

  

说有没有。用户(比如客户)       现在有一个bean只是将国家名称作为输入并提供该国家的货币。在这种情况下是一个bean   可以用于n号。用户(客户)。为每个客户端请求创建单独的bean没有任何意义。所以可能有这样一个bean可以提供给多个客户端,这种bean被称为无状态bean。   在无状态bean服务于客户端之后,它不会销毁但是会转到bean池,所以它可以   为其他客户服务。

现在让我们再举一个例子,

  

在购物车中,有一个可以包含项目列表的bean。   所以说当你在网上购物时添加商品时,这些商品   将被保存在一个专门为其创建的bean中   您。它的生命周期将一直到你完成购物。所以,如果我开始   在线购物,对我来说将创建另一个bean。所以它的原因   是有状态的,因为它的状态仍然活跃,虽然出局   整个会话,即从你开始添加第一个项目,直到你添加n   没有。将物品放入购物车并下订单。

无状态bean: bean可以服务于多个客户端(一个客户端的任何更改都会反映到其他客户端)。一旦无状态bean没有用,它就不会破坏,而是去bean池,因此将来它可以服务于其他客户端。

有状态的Bean: 一个bean只用于一个客户端。 (一个客户端的任何更改都只适用于该客户端,因为其他客户端不使用此bean)。所以一旦它的服务结束,它就会被破坏。

答案 1 :(得分:1)

如果您需要在调用之间维护客户端的状态,您应该使用猜测什么?对,有状态的豆子。如果你不关心状态 - 无状态豆是正确的选择。