Инъекция зависимости не работает в игровой среде - PullRequest
0 голосов
/ 28 июня 2018

Модуль класса

public class MorphiaModule extends AbstractModule {

@Override
protected void configure() {
   bind(PlayMorphia.class).asEagerSingleton();
 }
}

PlayMorphia

@Singleton
public class PlayMorphia {

MongoClient mongo = null;
Datastore datastore = null;
Morphia morphia = null;

@Inject
public PlayMorphia(ApplicationLifecycle lifecycle, Environment env, Configuration config) {
    try {
        configure(config, env.classLoader(), env.isTest());  // Method calling to get the config
    } catch (Exception e) {
        e.printStackTrace();
    }
    lifecycle.addStopHook(()->{
        if (env.isTest()) {
            mongo().close();
        }
        return CompletableFuture.completedFuture(null);
    });
 }
}

В My application.conf я упомянул правильное имя пакета / пути для Module класса, т.е.

play.modules.enabled  += "configuration.MorphiaModule"

Я следовал официальному документу Play об Eager Binding: https://www.playframework.com/documentation/2.6.x/JavaDependencyInjection#Eager-bindings

Во время компиляции я получаю это:

CreationException: Невозможно создать инжектор, см. Следующие ошибки:

1) Не реализована реализация для play.inject.ApplicationLifecycle. во время поиска play.inject.ApplicationLifecycle для 1-го параметра конфигурации. PlayMorphia. , (PlayMorphia.java:28) в конфигурации. MorphiaModule.configure (MorphiaModule.java:24) (через modules: com.google.inject.util.Modules $ OverrideModule ->
configuration.MorphiaModule)

Что я здесь не так делаю? Любая помощь будет заметна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...