我仍然不清楚EJB中无状态bean和有状态bean的区别。我应该在哪种情况下使用无状态和有状态的?
答案 0 :(得分:2)
我会给你很好的例子:
说有没有。用户(比如客户) 现在有一个bean只是将国家名称作为输入并提供该国家的货币。在这种情况下是一个bean 可以用于n号。用户(客户)。为每个客户端请求创建单独的bean没有任何意义。所以可能有这样一个bean可以提供给多个客户端,这种bean被称为无状态bean。 在无状态bean服务于客户端之后,它不会销毁但是会转到bean池,所以它可以 为其他客户服务。
现在让我们再举一个例子,
在购物车中,有一个可以包含项目列表的bean。 所以说当你在网上购物时添加商品时,这些商品 将被保存在一个专门为其创建的bean中 您。它的生命周期将一直到你完成购物。所以,如果我开始 在线购物,对我来说将创建另一个bean。所以它的原因 是有状态的,因为它的状态仍然活跃,虽然出局 整个会话,即从你开始添加第一个项目,直到你添加n 没有。将物品放入购物车并下订单。
无状态bean: bean可以服务于多个客户端(一个客户端的任何更改都会反映到其他客户端)。一旦无状态bean没有用,它就不会破坏,而是去bean池,因此将来它可以服务于其他客户端。
有状态的Bean: 一个bean只用于一个客户端。 (一个客户端的任何更改都只适用于该客户端,因为其他客户端不使用此bean)。所以一旦它的服务结束,它就会被破坏。
答案 1 :(得分:1)
如果您需要在调用之间维护客户端的状态,您应该使用猜测什么?对,有状态的豆子。如果你不关心状态 - 无状态豆是正确的选择。