Подтвердить что ты не робот

Доступ к свойствам application.conf из класса java с помощью Play! 2,0

Я хочу добавить объект в глобальную область, и для его построения мне нужно передать ему путь к файлу. Я не хочу жестко кодировать путь к файлу в источнике, поэтому я хочу получить этот путь из application.conf.

Проблема в том, что я не знаю, как получить доступ к этим свойствам из класса java. Я пробовал это:

Configuration.root().getString("file.path")

Но это заканчивается исключением NullPointerException.

Я ошибаюсь, полагая, что существует глобальный экземпляр конфигурации, который я могу использовать? Спасибо.

4b9b3361

Ответ 1

Попробуйте Play.application().configuration().getString("your.key")

Как отмечено в комментарии (nico_ekito), используйте play.Play, а не play.api.Play. play.api.Play для scala контроллеров (см. комментарий Маркуса biesior Biesioroff)

Кроме того, воспроизведение использует https://github.com/typesafehub/config под капотом, поэтому оно также может предоставить некоторые идеи.

Ответ 2

Даже если это кажется простым, вот scala способ получить свойства из файла конфигурации:

Воспроизвести 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")

Использование конфигурации configafe

import com.typesafe.config.ConfigFactory
...
ConfigFactory.load().getString("your.key");

Ответ 3

В Play 2.4 and + лучше использовать инъекцию зависимостей для доступа к конфигурациям:

import play.Configuration;
import javax.inject.Inject;


@Inject
private Configuration configuration;

...

String value = configuration.getString("your.key");

Ответ 4

Так как Play 2 использует конфигурационную библиотеку Typesafe, я обратился к моим vars в application.conf следующим образом:

ConfigFactory.load().getString("my.var");

Ответ 5

Использовать следующим образом (Протестировано в Play 1.2.5)

${play.configuration.getProperty('my.var')}

где my.var должен быть указан в файле application.conf

Ответ 6

В игре java есть:

import play.Play;
...
Play.application().configuration().getString("key")

Ответ 7

В качестве ссылки для доступа к нему из шаблона (для воспроизведения < 2)

play.configuration['your.key']

Ответ 8

Как уже упоминалось, Play.application.configuration больше не существует.

В Play Scala 2.3.x, чтобы прочитать значение из conf/application.conf, вы можете сделать следующее:

import play.api.Play.current
...
current.configuration.getString("key")

Ответ 9

В Play 1.2.x

import play.Play;
...


String version  = Play.configuration.getProperty("application.version.number", "1.1.1");

где второй параметр является значением по умолчанию