Java EE CDI 基于类的注入

s.t*_*koo 5 cdi jakarta-ee

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

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

@Resource(name="myMessageQueue",
                type="javax.jms.ConnectionFactory")
public class SomeMessageBean {
...
}
Run Code Online (Sandbox Code Playgroud)

我知道它是如何声明的,但是声明的资源应该如何在SomeMessageBeanClass? myMessageQueue注入的资源是什么?

Arj*_*jms 5

@Resource 在源自 EJB 的注释中。

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

您可以通过从InitialContextEJB 内部的when 或直接从 EJB 上下文(您也必须注入)请求“java:/comp”命名空间来访问此“映射” 。

这些天使用 ENC 似乎很少见。场注入要方便得多。