我正在阅读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似乎很少见。现场注入要方便得多。