Я пытаюсь перенести приложение Playframework с 2.4 на 2.5.3, и у меня возникают проблемы с получением значений из application.conf
файла:
До, чтобы получить значение от application.conf
, что я делаю:
Play.application().configuration().getString("label")
Теперь, поскольку Play.application()
устарел, я должен использовать инъекцию зависимостей. Основываясь на документации по инфраструктуре, я использую следующие инструкции:
- Определить импорт: import
javax.inject.*; import play.Configuration;
- Определить свойство класса:
@Inject private Configuration configuration;
- Используйте свойство класса конфигурации в моем классе
Когда я следую этим инструкциям на моем контроллере Application.java
, он отлично работает:
Но когда я пытаюсь использовать его на другом объекте класса из моего проекта, инъекция зависимостей не работает, и я всегда получаю NullPointerException
.
Может ли кто-нибудь дать мне пример о том, как получить значения из application.conf
с помощью зависимости Injection?
Некоторая часть моего java-кода, где я пытаюсь использовать DI:
import javax.inject.Inject;
import play.Configuration;
import play.Logger;
public class Zipper {
@Inject private Configuration configuration;
public void unZip(String zipFilePath) {
Logger.debug("Display : zipFilePath"+zipFilePath);
Logger.debug("before call parameter from application.conf");
Logger.debug("configuration.getString = "+configuration.getString("Unzipedfile.path"));
Logger.debug("aftercall parameter from application.conf");
}
}
И я всегда получаю исключение с нулевым указателем, в строке с configuration.getString("Unzipedfile.path")