繁体   English   中英

在非bean对象中进行EJB CDI注入?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM