gpt4 book ai didi

java - 在 Play Framework [java] 中注入(inject) MongoDB 实例

转载 作者:搜寻专家 更新时间:2023-11-01 03:49:52 25 4
gpt4 key购买 nike

尝试了解如何使用内置的 DI 框架 Guice 在 Play Framework JAVA(版本 2.4x)中连接到 MongoDB。

到目前为止,我使用的是 Jongo(1.2 版)。我创建了一个 JongoProvider 类,我在其中初始化具有相关 IP 地址的 MongoDB 实例到 MongoDB 等。

我将其注入(inject)到如下所示的模型中...,但似乎我无法在静态方法中访问注入(inject)的实例。是否有访问注入(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 依赖注入(inject)框架,因此您不能将 Guice 依赖注入(inject)到 Guice 不知道的东西中。尝试在 Play 对象上使用静态方法:

JongoProvider provicer = Play.application().injector().instanceOf(JongoProvider.class)

关于java - 在 Play Framework [java] 中注入(inject) MongoDB 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31507361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com