在 Play Framework [java] 中注入 MongoDB 实例
Injecting MongoDB instance in Play Framework [java]
试图了解如何使用内置的 DI 框架 Guice 在 Play Framework JAVA(版本 2.4x)中连接到 MongoDB。
到目前为止,我使用的是 Jongo(1.2 版)。我创建了一个 JongoProvider class,我在其中将具有相关 IP 地址的 MongoDB 实例初始化为 MongoDB 等
我将其注入到如下所示的模型中...,但是我似乎无法在静态方法中访问注入的实例。是否有访问 inject 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");
}
}
Class User
不属于 Guice 依赖注入框架,因此你不能将 Guice 依赖注入到 Guice 不知道的东西中。尝试在 Play
对象上使用静态方法:
JongoProvider provicer = Play.application().injector().instanceOf(JongoProvider.class)
试图了解如何使用内置的 DI 框架 Guice 在 Play Framework JAVA(版本 2.4x)中连接到 MongoDB。
到目前为止,我使用的是 Jongo(1.2 版)。我创建了一个 JongoProvider class,我在其中将具有相关 IP 地址的 MongoDB 实例初始化为 MongoDB 等
我将其注入到如下所示的模型中...,但是我似乎无法在静态方法中访问注入的实例。是否有访问 inject 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");
}
}
Class User
不属于 Guice 依赖注入框架,因此你不能将 Guice 依赖注入到 Guice 不知道的东西中。尝试在 Play
对象上使用静态方法:
JongoProvider provicer = Play.application().injector().instanceOf(JongoProvider.class)