2015-11-10 69 views
0

我不明白lookup参数与@Resource注释的参数name之间的差异。我看了所有关于注释和领域等文档ejb中的资源注入

我知道name如何被用来注入或绑定的资源,但问题是,没有找到解释lookupname之间的差别的任何例子。

任何人都可以给我一个这样的例子,或告诉我他们之间的区别?

回答

1

namejava: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),后者定义了一个间接查询。

+0

感谢您的回应,这是不够清楚:/ – TheBlack

+0

你是什么意思的“帕”?哪一个具体部分不清楚? –

+0

对不起,我的意思并不是意味着什么,我无意识地添加了它,不清楚的是它们之间的区别以及何时使用另一个的区别? – TheBlack