[英]CDI + JPA + EJB + JTA + JSF --JBoss-Kitchen Example with PostgreSQL?
[英]usage of cdi's in a ejb project without jsf
我正在學習javaEE,我在某處讀到了有關cdi的主要用法的信息,當時它首先是在帶有@ requestscope,@ applicationscope等注釋的jsf管理的bean中使用的。現在,在更新的javaEE版本中,cdi隨處可見(甚至在ejb bean中) ),問題是,我該如何注釋要注入到本地無狀態ejb內部的類? 我之所以這樣問,是因為@RequestScope之類的注釋均來自jsf,但我沒有使用jsf。 @Default是否足夠,因為它仍然被標記為默認值? @Dependent是更好的選擇嗎?
@Stateless
public class FooEjb{
@Inject Bar b;
}
// what annotation to put here?
public class Bar {
...
}
是的,您不需要JSF在JavaEE中使用CDI。
如果在不使用JSF的情況下使用CDI,請使用javax.enterprise.context
包中的范圍注釋。
@Default
是一個限定詞 ,顧名思義就是默認限定詞。 如果容器中具有相同類的多個實現/實例,則可以使用限定符來區分。
@Dependent
是一個范圍 ,它是默認范圍。 這意味着它取決於注入的類的范圍。每次創建要注入其的類的新實例時,都會注入@Dependent
類的新實例。
要啟用CDI,您需要將beans.xml
文件放在Web項目的WEB-INF
目錄中,或者EAR或EJB項目的META-INF
目錄中。
根據java ee文檔 ,在您的情況下無需注釋。 一個簡單的POJO是可注入的bean,並接收@Default
批注。 無需使用JSF。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.