【发布时间】:2011-08-16 18:36:34
【问题描述】:
我们将如何在 Spring 应用程序中实现会话外观设计模式? Session 外观的角色是否可以简单地由服务 bean 类提供服务,该服务 bean 类将为事务注释并具有会话范围?
【问题讨论】:
标签: spring jakarta-ee spring-mvc
我们将如何在 Spring 应用程序中实现会话外观设计模式? Session 外观的角色是否可以简单地由服务 bean 类提供服务,该服务 bean 类将为事务注释并具有会话范围?
【问题讨论】:
标签: spring jakarta-ee spring-mvc
Spring 服务(具有单例范围)就像本地无状态会话 bean,它是会话外观模式的实现,仅适用于非分布式应用程序。 Spring 确实证明了在大多数情况下不需要分发服务,并且 Session 外观的分布式方面并不像 J2EE 所宣称的那样普遍。
(当您说“会话范围”时,听起来您将会话与事务中的会话与 HttpSession 中的会话混淆了,因为 Spring 使用术语会话范围来指代 HttpSessions。(至少它让我对预期的内容感到困惑。 ) 我对the Session facade description 的阅读使我认为它与 HttpSession 没有任何关系。)
无论如何,我认为封装复杂性的基本目标仍然有效。在某些情况下,提供分布式访问的目标仍然非常有效,只是不像 J2EE 试图让它成为默认情况。 Seam 为有状态会话 bean 提供了一个案例。
【讨论】:
会话应该与网络层相关联,而不是服务。
服务确实拥有事务,因此它们应该具有该注释。
【讨论】: