【发布时间】:2013-11-10 10:23:49
【问题描述】:
我目前正在阅读resource injection in the java-ee tutorial 章节,我无法理解注入资源后如何使用资源,或者换句话说,以何种方式可以访问它:
基于字段的注入:
public class SomeClass {
@Resource(name="customerDB")
private javax.sql.DataSource myDB;
...
}
基于方法的注入:
public class SomeClass {
private javax.sql.DataSource myDB;
...
@Resource(name="customerDB")
private void setMyDB(javax.sql.DataSource ds) {
myDB = ds;
}
...
}
基于类的注入:
@Resource(name="myMessageQueue",
type="javax.jms.ConnectionFactory")
public class SomeMessageBean {
...
}
我想在class-based 中只有lookup 才有可能(究竟如何?)。然而,在前两种情况下,应该如何使用资源,特别是当它另外定义名称时?
更新:
如果不完全清楚,我的问题涉及以下主题:
1) 在field- 或method-based injection 中,我是否可以访问以下资源:
myDB.someMethod();
或
customerDB.someMethod();
如果第一个是正确的,name 的目的是什么?我也可以使用lookup 访问它吗?
2) 我如何在class-based injection 中访问它?我想lookup 但在哪条路径下?
【问题讨论】:
-
您在 bean 的所有方法中使用注入的字段,就像在任何其他 Java 类中使用任何其他字段一样。我不明白你的问题。
-
@JBNizet:我已经更新了问题。
标签: jakarta-ee resources ejb