无状态会话bean对具有相同方法的常规类提供什么?看起来有状态会话bean可以开箱即用,容器将确保状态看起来与任何地方的客户端相同。使用无状态会话bean提供的是普通类无法获得的内容吗?
如果您有分布式环境,那么您的EJB层是否可以进行故障转移?在我看来,你可以获得无状态会话bean的本地或远程实例,如果我只为我的应用程序使用一个服务器,因此从不使用远程接口是否有任何好处?
答案 0 :(得分:8)
EJB为您提供声明式安全性,事务和远程处理。当您调用EJB的某个方法时,实际上会通过一堆拦截器来提供上述功能层。
普通旧Java对象不会执行任何操作。当然,如果您不需要任何一个,那么EJB就不是必需的。
答案 1 :(得分:5)
无状态会话bean为应用程序容器提供有关其提供的服务的意图的知识。由于它是无状态的,应用程序容器可以随时决定销毁bean并在下次需要时重新创建它。
如果没有这些语义,应用程序容器无法优化您的应用程序的速度/内存/无论如何。因此,尽管无状态会话bean大多类似于POJO,但它们为应用程序服务器提供了一些额外的“提示”。
如果您要了解如何使用EJB3规范实现无状态会话bean,您会发现它与普通POJO之间有很多相似之处(除了附加注释)。