在 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)