Доступ к приложению.свойства conf из класса java с игрой! 2.0
Я хочу добавить объект в глобальную область видимости, и для его построения мне нужно передать ему путь к файлу. Я не хочу жестко кодировать путь к файлу в источнике, и поэтому я хочу получить этот путь из приложения.конф.
проблема в том, что я не знаю, как получить доступ к этим свойствам из класса java. Я попробовал это:
Configuration.root().getString("file.path")
но он заканчивается NullPointerException.
я ошибаюсь, предполагая, что есть глобальный Экземпляр конфигурации, который я могу использовать? Спасибо.
10 ответов:
попробовать
Play.application().configuration().getString("your.key")
как отмечено в комментарии (nico_ekito), пожалуйста, используйте
play.Play
, а неplay.api.Play
.play.api.Play
для контроллеров scala (см. комментарий Маркуса биесиора Биесиороффа)кроме того, play использует https://github.com/typesafehub/config под капотом, так что он также может обеспечить некоторые идеи.
даже если это кажется простым, вот это скала способ получения свойств из файла конфигурации:
игры 2.0 и 2.1:
import play.api.Play.current ... Play.application.configuration.getString("your.key")
игры 2.2 и +
import play.api.Play.current ... current.configuration.getString("your.key")
используя Typesafe config
import com.typesafe.config.ConfigFactory ... ConfigFactory.load().getString("your.key");
С
Play 2.4 and +
для доступа к конфигурациям лучше использовать инъекцию зависимостей:import play.Configuration; import javax.inject.Inject; @Inject private Configuration configuration; ... String value = configuration.getString("your.key");
поскольку Play 2 использует библиотеку конфигурации Typesafe, я получил доступ к своим vars в приложении.конф вот так:
ConfigFactory.load().getString("my.var");
использовать следующим образом (проверено в игре 1.2.5)
${play.configuration.getProperty('my.var')}
где мой.ВАР должен быть указан в заявке.conf file
как люди упомянули,
Play.application.configuration
больше не существует.В Игре Scala 2.3.х, чтобы прочитать значение из
conf/application.conf
, вы можете сделать следующее:import play.api.Play.current ... current.configuration.getString("key")