我的应用程序具有定义资源类的外部依赖关系-例如com.sample.SomeResource
。
运行我的应用程序的应用程序服务器提供了可以在我的应用程序中使用的环境资源。其中之一是com.sample.SomeResource
的实例。如果我的应用程序具有Web描述符-web.xml,则可以使用<resource-ref>
标记来引用它:
<resource-ref>
<res-ref-name>SomeResource</res-ref-name>
<res-type>com.sample.SomeResource</res-type>
</resource-ref>
然后我可以查找它。
try {
InitialContext initialContext = new InitialContext();
SomeResource someResource= (SomeResource) ctx.lookup("java:comp/env/SomeResource");
} catch (NamingException e) {
...
}
但是,我想摆脱web.xml。有没有办法以编程方式(动态)定义它?
最佳答案
您可以在字段上使用javax.annotation.Resource注释。
@Resource(lookup = "java:comp/env/SomeResource")
private SomeResource someResource;