0

根据 oracle 文档...

单例会话 bean 提供与无状态会话 bean 类似的功能,但与它们的不同之处在于每个应用程序只有一个单例会话 bean,而不是无状态会话 bean 池,其中任何一个都可以响应客户端请求。与无状态会话 bean 一样,单例会话 bean 可以实现 Web 服务端点。

单例会话 bean 在客户端调用之间维护它们的状态,但不需要在服务器崩溃或关闭时维护它们的状态。

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

4

2 回答 2

2

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

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

单例会话 Bean 单例会话 Bean 在每个应用程序中实例化一次,并且在应用程序的整个生命周期内都存在。单例会话 bean 设计用于单个企业 bean 实例在客户端之间共享并由客户端同时访问的情况。

单例会话 bean 提供与无状态会话 bean 类似的功能,但与它们的不同之处在于每个应用程序只有一个单例会话 bean,而不是无状态会话 bean 池,其中任何一个都可以响应客户端请求。与无状态会话 bean 一样,单例会话 bean 可以实现 Web 服务端点。

单例会话 bean 在客户端调用之间维护它们的状态,但不需要在服务器崩溃或关闭时维护它们的状态。

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

于 2013-02-25T04:10:58.537 回答
1

你混淆了这个段落。它说单例会话 bean 提供与无状态会话 bean 类似的功能。并不是说他们无国籍的。您从哪里获得在调用之间必须清理单例的信息?这是不真实的。在您的应用程序中使用单例的一个原因是您可以保存状态并使其在整个应用程序中保持一致。可以使用单例的示例在日志记录中或用于存储应用程序范围的配置信息。有关更多信息,请参见维基百科页面。

于 2013-02-25T12:31:46.930 回答