我们如何在Spring应用程序中实现Session Facade设计模式?会话外观的角色是否仅由将为事务注释并将具有会话范围的服务bean类提供服务?
答案 0 :(得分:1)
Spring服务(具有单例范围)就像本地无状态会话bean,它是Session Facade模式的实现,仅适用于未分发的应用程序。 Spring确实证明了在大多数情况下服务不需要分发,并且Session Facade的分布式方面并不像J2EE那样普及。
(当你说“会话范围”时,听起来你会像在HttpSession中那样在会话事务中混淆会话,因为Spring使用术语会话范围来引用HttpSessions。(至少令我困惑的是什么是预期的。 )我对the Session facade description的阅读使我认为它与HttpSession没有任何关系。)
无论如何,我要说封装复杂性的基本目标仍然有效。在某些情况下,提供分布式访问的目标仍然非常有效,它不是像J2EE那样试图实现它的默认情况。 Seam提出了仍然具有相关性的有状态会话bean的情况。
答案 1 :(得分:0)
会话应该与Web层相关联,而不是与服务相关联。
服务确实拥有交易,因此他们应该拥有该注释。