【发布时间】:2011-03-07 04:41:13
【问题描述】:
如果需求需要,对不同模块同时使用无状态和有状态会话 bean 是否是一种好方法?
【问题讨论】:
标签: java jakarta-ee ejb-3.0
如果需求需要,对不同模块同时使用无状态和有状态会话 bean 是否是一种好方法?
【问题讨论】:
标签: java jakarta-ee ejb-3.0
您的问题很模糊,但您似乎基本上是在寻求建议,使用无状态或有状态会话 bean 是否好。
无状态会话 bean (SLSB) 绝对易于使用。几乎不需要配置,它们是公开服务的理想选择。
有状态会话 bean (SFSB) 表面上类似于 SLSB。但是它们是有状态的这一事实使它们的编程模型不同,并且更难使用。例如,您将需要配置与您的负载相匹配的池大小,设置超时参数,并且不要忘记正确处理它们。人们通常会反对它,除非您确切地知道为什么要使用它们而不是另一种更轻松的方法(例如HttpSession 或数据库),并且只有当您对 EJB 模型有很好的掌握时。有关Stateful EJBs in web app 的更多信息。
但是 SLSB 和 SFSB 当然可以在一个应用程序中一起使用。该技术自十年前就已经存在,因此周围有大量可用信息。但是,我们鼓励您尝试使您的设计尽可能无状态。
【讨论】:
当然。您应该尽可能使用无状态(它们更快并且消耗更少的内存,因为它们不需要序列化和反序列化)并且仅在需要时才使用有状态。所以拥有(例如)8 个无状态和 2 个有状态 bean 是完全可以的
【讨论】: