试图了解如何使用内置的DI框架Guice在Play Framework JAVA(2.4x版)中连接到MongoDB。
到目前为止,我正在使用Jongo(1.2版)。我创建了一个JongoProvider类,在其中初始化具有与MongoDB相关的IP地址的MongoDB实例。
我将其注入到如下所示的模型中...,但是似乎无法以静态方法访问注入的实例。是否有访问注入Mongo对象的正确方法?
class User {
@Inject JongoProvider jongo;
public static User getUsers() {
// can't access static instance
jongo.getcollection("users");
}
}
// ===根据Mon Calamari的答案进行编辑
class User {
public static JongoProvider jongo() {
return Play.application().injector().instanceOf(JongoProvider.class);
}
public static User getUsers() {
jongo().getcollection("users");
}
}
最佳答案
User
类不属于Guice依赖项注入框架,因此您不能将Guice依赖项注入到Guice一无所知的东西中。尝试对Play
对象使用静态方法:
JongoProvider provicer = Play.application().injector().instanceOf(JongoProvider.class)