播放框架 onLoadConfig

Play Framework onLoadConfig

在 GlobalSettings.scala 中,我可以覆盖 onLoadConfig(...) 方法并将其绑定到我的 application.conf 中。方法签名是:

def onLoadConfig(config: Configuration, path: File,
    classloader: ClassLoader, mode: Mode.Mode): Configuration

这些参数是什么?如何调用此方法?当我启动播放服务器时它会被调用吗?这些参数是什么以及如何注入到这个方法中?

据此blog,我认为这可能对您有用

如果您在开发 Web 应用程序时需要不同的配置,即开发、测试、生产......在 play 框架中轻松实现它的方法是使用:

override def onLoadConfig(config: Configuration, path: File, classloader: ClassLoader, mode: Mode.Mode): Configuration

您只需使用此代码覆盖全局对象中的 onLoadConfig,然后加载默认 application.conf 和每种模式的配置文件。

 object Global extends GlobalSettings with Loggable {

  override def onLoadConfig(config: Configuration, path: File, classloader: ClassLoader, mode: Mode.Mode): Configuration = {
    val modeSpecificConfig = config ++ Configuration(
      ConfigFactory.load(s"application.${mode.toString.toLowerCase}.conf"))
    super.onLoadConfig(modeSpecificConfig, path, classloader, mode)
  }

}

现在播放将加载这些文件,application.conf 会加载,之后还会加载正确的文件 对于当前模式,如果默认配置存在则覆盖默认配置,加载的文件是:

application.conf application.dev.conf application.prod.conf application.test.conf