4

Попытка понять, как подключиться к MongoDB в Play Framework JAVA (версия 2.4x), используя встроенную инфраструктуру DI, Guice.Инъекция экземпляра MongoDB в Play Framework [java]

До сих пор я использую 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"); 
    } 
} 

// === Редактирование на основе ответа Пн кальмара в

class User { 

    public static JongoProvider jongo() { 
     return Play.application().injector().instanceOf(JongoProvider.class); 
    } 

    public static User getUsers() { 
     jongo().getcollection("users"); 
    } 
} 
+1

Да, не используйте статический метод. –

ответ

0

Класс User не принадлежит рамки инъекции зависимость Guice, таким образом, вы не можете вводить Guice зависимость в чем-то Guice ничего не знает о. Попробуйте использовать статические методы на Play объект:

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

Я имею в виду, что для класса 'User' нет привязки к guice. –

Смежные вопросы