我已经阅读了有关使用@Stateful
和@SessionScoped
注释及其差异的不同文章,包括这篇文章。从定义的角度来看,@sessionScoped
在客户端/Web 层之间需要/创建会话时使用,而@Stateful
在业务逻辑层中需要。但是在实施它们时,我仍然没有掌握真正的差异。这是一个简单的例子
@Named
@SessionScoped
ShoppingCartUIBean {
@inject
shoppingCart cart;
// more code
}
@Stateful
ShoppingCart {
//business logic of adding/updating/deleting cart items
}
@SessionScoped
给定用户和服务器之间的 bean是如何维护 Http 会话的?也就是说,如果我在不同的计算机上打开了一个购物车,我应该能够看到我的购物车,它与我的用户资料相关联。这是如何成立的?- 如果我
annonations
在上面的 bean 上切换两个会发生什么?会有什么影响吗?(抱歉,这听起来可能很愚蠢。我正在进入 Java EE 世界,所以我希望基础知识正确)。 - 根据这篇关于差异的精彩帖子:@SessionScoped vs @Stateful 和 @ApplicationScoped vs @Singleton,@ Stateful bean 几乎不用于 Web 应用程序。有没有
@Stateful
绝对必要的情况? @stateful
关于相关说明:将bean 注入bean是否合法@ApplicatonScoped
?这意味着整个应用程序只有一个@stateful
bean,并且所有客户端都通过代理使用一个有状态 bean 的相同实例。(就像这里演示的那样,不要@Stateful
在servlets
EJB 示例中注入无状态和有状态 bean 的区别)。
谢谢。