[英]EJB CDI injection in non-bean object?
我有
@Named("bean1")
@javax.enterprise.context.SessionScoped
public class Bean1 implements Serializable {
// ...
}
@Named("bean2")
@javax.enterprise.context.SessionScoped
public class Bean2 implements Serializable {
private SomeClass object = new SomeClass();
}
和
public class SomeClass {
@Inject
private Bean1 injBean;
}
我的問題:
1)Bean2是會話作用域的。 Bean2.object有哪些作用域?
2)為什么在someClass中注入不起作用? 謝謝。
1)Bean2是會話作用域的。 Bean2.object有哪些作用域?
嗯, Bean2.object
只是Bean2
實例內部的一個對象,因此沒有任何CDI范圍。
2)為什么在someClass中注入不起作用? 謝謝。
至少有兩個原因:
someClass
(順便說一句,請檢查命名約定)不是CDI托管的bean Bean2.object
引用的對象不是CDI創建的,因此CDI甚至不知道實例存在。 要解決此問題, someClass
托管bean,然后讓CDI將實例注入Bean2.object
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.