2011-07-14 55 views
2

將較窄範圍的bean注入到大範圍bean中安全嗎?將EVENT scoped bean注入CONVERSATION/SESSION作用域bean會更安全嗎?

Seam CDI是否負責找出當前的EVENT/REQUEST/PAGE上下文來執行正確的SESSION/CONVERSATION bean注入。

我的觀點是。我不希望一個頁面/偶數的對象與其他頁面/事件的數據混在一起。

我總是可以在方法中使用Component.getInstance()來確保我獲得當前事件/頁面的bean。但是我想在這裏使用@In(scope = ScopeType.EVENT)

回答

1

會話和頁面作用域組件按默認進行同步。因此,向其中注入事件範圍的組件(例如EntityManager)應該是安全的。由於它是同步的,兩個請求不會干擾兩個不同的注入對象。

完全確信,你不會遇到併發問題,我建議你不要注入這些組件,但是從部件庫中獲取它們:

MyComponent myComponent = (MyComponent) Component.getInstance("myComponent"); 
+0

多數民衆贊成我通常做的始終。我只是想確保我不會太偏執。 – chinto