Play 2.6.x внедрение зависимостей среды

Я пытаюсь найти режим (Dev vs Prod) своего игрового приложения. Я ввел среду, как показано ниже:

public class Sample{
    @Inject
    private play.Environment environment;

и я вызываю метод, как показано ниже:

    public void methodName(){
        if (environment.isDev()) {
            //do something
        }
    }
}

поскольку переменная environment не инициализирована, она выдает NullPointerException, когда я пытаюсь получить к ней доступ для вызова метода isDev().

Как инициализировать объект environment? Любая помощь приветствуется. Благодаря тонну!

Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Лучшие практики использования Guice в ваших Java-проектах
Лучшие практики использования Guice в ваших Java-проектах
Guice от Google - это популярная система инъекции зависимостей для Java-приложений. Он помогает разработчикам создавать более ремонтопригодный,...
0
0
137
1

Ответы 1

Во-первых, не используйте инъекцию поля, во многих случаях это не сработает.

public class Sample {
    @Inject
    public Sample(final Environment environment) {

    }
}

Во-вторых, как создается образец? Вам нужно создать его с помощью внедрения зависимостей, иначе это не сработает. Если вам это нужно, используйте:

bind(Sample.class).as(Singleton.class);

а затем образец @Inject в другом классе. Если это не синглтон, используйте bind () иначе

Другие вопросы по теме