Java EE CDI 基于类的注入



我正在阅读Java EE CDI,我对基于类的资源注入的工作原理感到困惑

Java EE 6 教程给出了以下示例用法:

@Resource(name="myMessageQueue",
                type="javax.jms.ConnectionFactory")
public class SomeMessageBean {
...
}

我明白它是如何声明的,但是声明的资源应该如何在SomeMessageBeanClass中使用?注入myMessageQueue资源是什么?

@Resource源自

EJB 的注解中。

它的血统可以追溯到可以注入田地之前的日子。在那些日子里,"注入"意味着将某些内容放入与每个 EJB bean 关联的一种映射中;所谓的 ENC(企业命名上下文)。

您可以通过在 EJB 中从InitialContext请求 "java:/comp" 命名空间来访问此"映射",或者直接从 EJB 上下文(您也必须注入)访问此"映射"。

如今,使用ENC似乎很少见。现场注入要方便得多。

最新更新