【问题标题】:How to activate circular dependencies in Play 2.5?如何在 Play 2.5 中激活循环依赖?
【发布时间】:2016-09-03 05:15:27
【问题描述】:
这个问题源于我两天前问的question。我实现了自己的错误处理程序,它扩展了DefaultHttpErrorHandler。 DefaultHttpErrorHandler 扩展了 HttpErrorHandler,它也用作 WebJarAssets 类中的参数 errorHandler: HttpErrorHandler。一开始我以为我的设计有缺陷,但James Ward 评论说我似乎做对了。
长话短说,我需要知道如何激活循环依赖。不幸的是,Play documentation 中没有列出示例代码,所以我不知道应该在哪里设置disableCircularProxies(false)。
【问题讨论】:
标签:
scala
playframework
guice
webjars
playframework-2.5
【解决方案1】:
您需要一个自定义的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)
}
}
并告诉 Play 在application.conf 中使用它:
play.application.loader = "CustomApplicationLoader"
完整代码示例:
https://github.com/webjars/webjars-play/tree/cicular-deps