【发布时间】:2014-12-03 14:35:41
【问题描述】:
我已经阅读了有关使用 @Stateful 和 @SessionScoped 注释及其差异的不同文章,包括 this 帖子。从定义的角度来看,@sessionScoped 用于在客户端/Web 层之间需要/创建会话时,而在业务逻辑层中需要@Stateful。但是在实施它们时,我仍然没有掌握真正的差异。这是一个简单的例子
@Named
@SessionScoped
ShoppingCartUIBean {
@inject
shoppingCart cart;
// more code
}
@Stateful
ShoppingCart {
//business logic of adding/updating/deleting cart items
}
-
@SessionScopedbean 如何在给定用户和服务器之间维护 Http 会话? 也就是说,如果我在不同的计算机上打开了一个购物车,我应该能够看到我的购物车,它与我的用户资料相关联。这是如何确定的? - 如果我在上面的 bean 上切换两个
annonations会发生什么?会有什么影响吗? (抱歉,这听起来可能很愚蠢。我正在进入 Java EE 世界,所以我想了解基本知识)。 - 根据Differences : @SessionScoped vs @Stateful and @ApplicationScoped vs @Singleton 上的这篇精彩帖子,@Stateful bean 几乎不用于 Web 应用程序。有没有绝对需要
@Stateful的情况? - 相关说明:将
@statefulbean 注入@ApplicatonScopedbean 是否合法?这意味着整个应用程序只有一个@statefulbean,所有客户端都通过代理使用一个有状态 bean 的相同实例。 (正如这里演示的那样,不要在servletsEJB example for stateless and stateful beans difference 中注入@Stateful)。
谢谢。
【问题讨论】:
标签: ejb java-ee-7 stateful session-scope