Singleton EJB不应该维护状态

时间:2013-02-25 03:58:02

标签: ejb

根据oracle文档...

  

Singleton会话bean提供与无状态相似的功能   会话bean但与它们不同,因为只有一个单例   每个应用程序的会话bean,而不是无状态池   会话bean,其中任何一个都可以响应客户端请求。喜欢   无状态会话bean,单例会话bean可以实现web   服务端点。

     

单例会话bean在客户端之间维护其状态   调用 但不要求跨服务器维护其状态   崩溃或停机。

为什么Singleton会话bean在客户端调用之间维护它们的状态?据我所知,无状态/单身都应该在调用完成后清理! 请解释一下。

2 个答案:

答案 0 :(得分:2)

答案在你的帖子中可能是你得到报价的上面一段。每个应用程序的一个实例。它遵循单身模式......

http://docs.oracle.com/javaee/6/tutorial/doc/gipjg.html#gipim

  

Singleton会话Bean单例会话Bean实例化一次   每个应用程序,并存在于应用程序的生命周期中。   Singleton会话bean是为a的情况而设计的   单个企业bean实例是跨越并同时共享的   由客户访问。

     

Singleton会话bean提供与无状态相似的功能   会话bean但与它们不同,因为只有一个单例   每个应用程序的会话bean,而不是无状态池   会话bean,其中任何一个都可以响应客户端请求。喜欢   无状态会话bean,单例会话bean可以实现web   服务端点。

     

Singleton会话bean在客户端之间维护其状态   调用但不需要在服务器上维护其状态   崩溃或停机。

     

使用单例会话bean的应用程序可以指定   应用程序启动时应该实例化单例   允许单例执行的初始化任务   应用。单例可以在应用程序上执行清理任务   关闭,因为单身人士将在整个过程中运作   应用程序的生命周期。

答案 1 :(得分:1)

你这段话令人困惑。它说单例会话bean提供与无状态会话bean类似的功能。它并没有说他们 无国籍。你在哪里获得了在调用之间必须清理Singletons的信息?那是不真实的。在应用程序中使用单例的一个原因是,您可以保存状态并使其在整个应用程序中保持一致。可以使用单例的示例包括Logging或用于存储应用程序范围的配置信息。有关详细信息,请参阅wikipedia页面。