播放框架 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
在 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