Playframework 2.4中的自定义路由器

Dan*_*nix 8 scala url-routing playframework playframework-2.4

我正在使用Play 2.4.我想用我自己的类替换默认路由器,使用新的动态依赖注入播放功能.这样做的步骤是什么?

Dan*_*nix 4

一种可能的解决方案是创建一个新的 Guice 模块,以绑定您的新路由器:

class RouterModule extends AbstractModule {

  override def configure(): Unit = {
    bind(classOf[Router]).to(classOf[CustomRouter])
  }
}
Run Code Online (Sandbox Code Playgroud)

然后定义一个新的应用程序加载器,它将使用新创建的模块覆盖默认配置的路由器:

class MyApplicationLoader extends GuiceApplicationLoader with GuiceableModuleConversions {

  override protected def overrides(context: Context): Seq[GuiceableModule] = {
    Seq(fromGuiceModule(new RouterModule)) ++ super.overrides(context)
  }
}
Run Code Online (Sandbox Code Playgroud)

并在 application.conf 中使用新创建的应用程序加载器,而不是默认的应用程序加载器:

play.application.loader = "de.zalando.store.pdp.modules.MyApplicationLoader"
Run Code Online (Sandbox Code Playgroud)