我们可以在J2EE应用程序中同时使用Stateless和Stateful会话bean吗?

时间:2010-06-23 07:26:24

标签: java java-ee ejb-3.0

如果需求要求,是否可以将不使用Stateless和Stateful会话bean用于不同的模块?

2 个答案:

答案 0 :(得分:9)

你的问题很模糊,但看起来你基本上都在征求建议是否使用无状态或有状态会话bean是好的。

  • 无状态会话bean(SLSB)最终易于使用。几乎没有什么可配置的,它们是公开服务的理想选择。

  • 有状态会话bean(SFSB)在表面上类似于SLSB。但事实上,他们的状态使他们的编程模型不同,并且更难使用。例如,您需要配置与您的负载匹配的池大小,设置超时参数,并且不要忘记正确处理它们。人们通常建议反对它,除非你确切地知道为什么你会使用它们而不是另一种更轻的方法(例如HttpSession或数据库),并且只有你对EJB模型有良好的掌握。有关Stateful EJBs in web app的更多信息。

但是SLSB和SFSB当然可以在应用程序中一起使用。这项技术已经存在了十年,所以周围有大量的信息。然而,鼓励尝试使您的设计尽可能无状态。

答案 1 :(得分:2)

当然。您应该尽可能使用无状态(它们更快并且消耗更少的内存,因为它们不需要序列化和反序列化)并且仅在需要时才有状态。所以拥有(例如)8个无状态和2个有状态豆是完全可以的