我想根据运行环境将我的播放应用程序指向特定的应用程序配置文件。共有三个,它们对应于标准播放状态:
- 应用程序.dev.conf
- 应用程序.test.conf
- 应用程序.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()。
当我在 Global.java 中覆盖 onLoadConfig 时,是否有提供模式的静态方法?