如何在Play 2.5中激活循环依赖?

Joh*_*Doe 5 scala guice playframework webjars playframework-2.5

这个问题源于我两天前提出的一个问题.我实现了自己的错误处理程序,扩展DefaultHttpErrorHandler.DefaultHttpErrorHandler延伸HttpErrorHandler,其也被用作一个参数errorHandler: HttpErrorHandlerWebJarAssets类.首先,我认为我的设计存在缺陷,但詹姆斯·沃德评论说我似乎做得对.

长话短说,我需要知道如何激活循环依赖.不幸的是,Play文档中没有列出示例代码,因此我不知道应该在哪里设置disableCircularProxies(false).

Jam*_*ard 7

您需要一个自定义GuiceApplicationLoader:

import play.api.ApplicationLoader
import play.api.inject.guice.{GuiceApplicationLoader, GuiceApplicationBuilder}

class CustomApplicationLoader extends GuiceApplicationLoader {
  override protected def builder(context: ApplicationLoader.Context): GuiceApplicationBuilder = {
    super.builder(context).disableCircularProxies(false)
  }
}
Run Code Online (Sandbox Code Playgroud)

并告诉Play使用它application.conf:

play.application.loader = "CustomApplicationLoader"
Run Code Online (Sandbox Code Playgroud)

完整代码示例:https: //github.com/webjars/webjars-play/tree/cicular-deps