我不明白lookup
参数与@Resource
注释的参数name
之间的差异。我看了所有关于注释和领域等文档ejb中的资源注入
我知道name
如何被用来注入或绑定的资源,但问题是,没有找到解释lookup
和name
之间的差别的任何例子。
任何人都可以给我一个这样的例子,或告诉我他们之间的区别?
我不明白lookup
参数与@Resource
注释的参数name
之间的差异。我看了所有关于注释和领域等文档ejb中的资源注入
我知道name
如何被用来注入或绑定的资源,但问题是,没有找到解释lookup
和name
之间的差别的任何例子。
任何人都可以给我一个这样的例子,或告诉我他们之间的区别?
name
是java:comp/env
命名空间中的“虚拟”参考名称。在某种程度上,该参考需要指向已经定义的“物理”资源。标准的做法是使用lookup
属性,但产品也可以“绑定”资源引用,因此在许多产品中,特定于产品的绑定在功能上等同于名称。 (产品特定绑定仍然很重要,因为您不想依赖开发人员对操作环境中的数据源名称进行硬编码等)。
例如,您可能有@Reference(name="jdbc/myDS", lookup="jdbc/oracleDS")
,这意味着java:comp/env/myDS
将被定义为对绑定到默认JNDI名称空间的jdbc/oracleDS
数据源的间接查找。
又如,您可能有@DataSourceDefinition(name="derbyDS")
和@Resource(name="jdbc/myDS", lookup="java:comp/env/derbyDS")
。前者定义了一个实际的数据源(再次相对于java:comp
),后者定义了一个间接查询。
感谢您的回应,这是不够清楚:/ – TheBlack
你是什么意思的“帕”?哪一个具体部分不清楚? –
对不起,我的意思并不是意味着什么,我无意识地添加了它,不清楚的是它们之间的区别以及何时使用另一个的区别? – TheBlack