我有一個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