Я хочу указать мое приложение для воспроизведения в конкретный файл конфигурации приложения на основе среды, в которой он запущен. Их три, и они соответствуют стандартным состояниям воспроизведения:
- application.dev.conf
- application.test.conf
- application.prod.conf
Сотрудник поделился методом для этого, который требует установки переменной среды ОС.
Я хотел бы исключить необходимость установки переменной ОС. Мое предпочтение - использовать все, что использует Play при запуске, чтобы узнать, в каком режиме он находится.
Например, если вы выполните play run
из командной строки, то часть вывода будет "[info] play - Application started (Dev)"
Я хочу использовать эту информацию в моей Global.java, где я переопределяю onLoadConfig следующим образом:
public Configuration onLoadConfig(Configuration baseConfiguration, File f, ClassLoader loader) {
String playEnv=<some static method to get mode>;
Config additionalConfig = ConfigFactory.parseFile(new File(f,"conf/application."+playEnv+".conf"));
Config baseConfig = baseConfiguration.getWrappedConfiguration().underlying();
return new Configuration(baseConfig.withFallback(additionalConfig));
}
Все, что я нахожу, это то, как это сделать после, приложение было запущено, то есть с помощью isDev(), isTest(), isProd().
Есть ли статический метод, предоставляющий режим, в то время как я переопределяю onLoadConfig в Global.java?