我有一个JSF管理的session-scopped bean。它也是一个弹簧组件,所以我可以注入一些字段:JSF/Spring Session在用户之间共享
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.springframework.stereotype.Component;
@ManagedBean
@SessionScoped
@Component
public class EpgBean {...}
问题是会话在用户之间共享!如果用户执行某些操作并且来自另一台计算机的另一个用户连接,则会看到另一个用户的SessionScoped数据。
是由于Spring的@Component会迫使bean成为单例吗?这件事情的正确方法是什么?
我不使用Spring,但理论上你应该摆脱那些未使用的JSF托管bean注释(因为这只会让你感到困惑;如果你使用另一个框架来管理bean,它们根本没有被使用)并添加(比如'@Scope(“session”)')(它确实默认为“application”作用域,就像JSF在没有声明JSF特定作用域注释时JSF默认为“none”作用域一样)。 – BalusC 2012-07-06 12:18:38