了解InitialContext在java中的实际用途?

时间:2012-03-11 11:29:09

标签: java lookup

我在遗留项目上工作最多,我发现这行ctx.lookup("datasource");很多次。根据我在Initial上下文中遇到的用法,它用于获取在webserver / appserver中绑定了某个名称的java对象。

  • 例如,我们通过weblogic的管理控制台创建数据源,然后我们可以使用ctx.lookup(“datasource”)在java程序中使用该程序。如果我没记错的话,我在EJB实现期间也看到了这种代码,其中某些对象在服务器本身中绑定了一些名称。

Java docs说当构造初始上下文时,其环境使用在传递给构造函数的environment参数中定义的属性进行初始化。所以可能是我之前提到的用法,初始上下文是用环境参数构造的(这可能意味着管理员在服务器中创建的对象,如数据源,连接池,如果有的话)。这是我可以将初始上下文联系起来的唯一用途。

请告诉我是否正确使用初始上下文类?

基本上在初始上下文中,我们可以绑定/查找具有相同名称的java对象。对于webserver / appserver,可能是数据源,连接池等对象在启动时被服务器绑定,我们可以直接查找它们吗?

1 个答案:

答案 0 :(得分:2)

这看起来正确使用了上下文类。在较新的EJB实现中,您还可以使用@EJB@PersistenceContext注释。有关更深入的理解,请阅读维基百科关于Dependency Injection的文章。