我在遗留项目上工作最多,我发现这行ctx.lookup("datasource");
很多次。根据我在Initial上下文中遇到的用法,它用于获取在webserver / appserver中绑定了某个名称的java对象。
Java docs说当构造初始上下文时,其环境使用在传递给构造函数的environment参数中定义的属性进行初始化。所以可能是我之前提到的用法,初始上下文是用环境参数构造的(这可能意味着管理员在服务器中创建的对象,如数据源,连接池,如果有的话)。这是我可以将初始上下文联系起来的唯一用途。
请告诉我是否正确使用初始上下文类?
基本上在初始上下文中,我们可以绑定/查找具有相同名称的java对象。对于webserver / appserver,可能是数据源,连接池等对象在启动时被服务器绑定,我们可以直接查找它们吗?
答案 0 :(得分:2)
这看起来正确使用了上下文类。在较新的EJB实现中,您还可以使用@EJB
和@PersistenceContext
注释。有关更深入的理解,请阅读维基百科关于Dependency Injection的文章。