我正在開發一個Java EE 6的應用程序。我廣泛使用CDI,我的問題是,@Inject和@Produces與SeIn中的@In和@Out相同嗎?現在我們有CDI,@In和@Out註釋是否還在使用?Seam的雙向注入和焊接
5
A
回答
11
在@In和@Out註釋仍然使用 現在我們有CDI?
@In
和@Out
是縫2個註釋,以便它們不會在Java EE中使用6
我的問題是,是@Inject和 @Produces一樣@In和@Out爲 煤層?
@Inject
和@Produces
是不完全一樣,但它們大體相當。主要的區別是,當需要(由這需要依賴的組分控制)Java EE 6的依賴性被生產,而在煤層的東西是準備使用別處被儘快執行2注出(由受控組件,它提供了依賴)
以登錄爲例如:
- 在接縫2,經認證的用戶在已經成功登錄後立即注出到期望的範圍(如會議)的登錄組件本身。有一個通常適合用例(會話)的範圍,但是不是提供的依賴項(會話)的範圍。 Java EE 6中
,一個會話範圍登錄分量執行認證,並且存儲在一個私有字段已認證用戶。該字段然後由生產者方法控制。所以每當另一個組件請求驗證的用戶,像這樣進行的:
@Produces @LoggedIn User getCurrentUser() { return user; }
這是爲什麼?我聽到你問...
的原因很簡單。 Weld/Java EE 6通過代理(大多數)依賴性獲得了巨大的性能提升。而且它不可能代理異常:-)
除此之外,Java EE 6面向需求的方法(在需要時請求它)感覺優於Seam 2(生成並存儲它) 。
相關問題
- 1. 焊接原型與Seam Forge
- 2. 碼頭8,焊接 - 注入不工作
- 3. 如何在CDI(焊接)中注入EntityManager?
- 4. 無法在焊縫和焊縫中注入entityManager 3
- 5. 碼頭+ Jersey servlet外+焊接:焊接注入未初始化,有什麼不好?
- 6. 注入澤西島,焊接和DeltaSpike失敗
- 7. 將EJB注入Seam組件
- 8. JBoss焊接:注入不同的測試實現
- 9. 在CDI中注入新的對象for循環(焊接)
- 10. @In(注入)和@Out之間有什麼不同(注出)在SEAM
- 11. JBoss Seam的構造函數注入
- 12. CDI /焊接JEE5和Tomcat6
- 13. 如果與RestEasy結合使用,焊接CDI不會注入
- 14. 在CDI中注入對象列表(焊接)
- 15. 如何使用焊接注入外部API Bean - JSR-299
- 16. 焊接注入HttpSession到會話scoped bean爲空
- 17. 焊接@Inject接口
- 18. 焊縫構造函數中的焊接注入:無法解析任何類型的beans
- 19. 向Angular 4注入接口
- 20. 雙向鏈接的用戶輸入
- 21. SEAM localeSelector不注射
- 22. 迴流焊和重新焊接有什麼區別?
- 23. 雙向連接
- 24. 接口和泛型的雙向引用
- 25. 「無法ejbRef轉換爲EJB」 關於CDI(焊接)注入@Stateless的EJB到Glassfish的
- 26. 焊接@Inject的依賴注入(JSR-299 RI)。相應的@Produces如何找到?
- 27. 進樣表(焊接)
- 28. Seam3焊接登錄
- 29. 當使用焊接核心和焊接servlet核心時,CDI停止工作?
- 30. 從Wicket的超級/抽象類調用方法時,焊接注入失敗
揚,謝謝你非常有幫助的答案。您提到@In和@Out是Seam 2註釋,他們是否在seam 3中棄用? – arg20 2011-04-05 04:31:33
不僅如此 - 它們不可用。它們是Seam 2 jar的一部分,並且這個庫不在JEE 6中部署,所以你根本不能使用它們。 – 2011-04-05 04:59:28
Seam2!= Seam3只有名字相同。 Seam3是一個全新的實現。 – 2011-08-30 02:03:44