簡體   English   中英

沒有jsf的ejb項目中cdi的用法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM