Play Framework 2.6 - 允许Guice循环代理

时间:2018-03-05 14:23:17

标签: java playframework guice

在旧项目中,我们正在尝试升级Play!到2.6版本,我们无法启用循环代理。

之前(在Play!2.5中),有可能在disableCircularProxies(false)上调用GuiceInjectorBuilder,但现在没有这样的方法。

怎么能解决这个问题?

2 个答案:

答案 0 :(得分:0)

我不确定在2.6.x中删除了disableCircularProxies的原因。但是,您可以直接致电withBinderOptions来解决此问题。 Here's disableCircularProxies的2.5.x实现:

final def disableCircularProxies(disable: Boolean = true): Self =
  withBinderOption(DisableCircularProxies, disable)

在2.6.x中,您可以通过直接调用来获得与disableCircularProxies相同的效果:

withBinderOption(DisableCircularProxies, disable)

答案 1 :(得分:0)

在当前的解决方案中,我在Java项目中使用了Scala API,因为那里仍然有disableCircularProxies。

class CustomApplicationLoader extends GuiceApplicationLoader() {

  override def builder(context: ApplicationLoader.Context): GuiceApplicationBuilder = {
    initialBuilder
      .disableCircularProxies(false)
      .in(context.environment)
      .loadConfig(context.initialConfiguration)
      .overrides(overrides(context): _*)

  }
}

并在application.conf中

play.application.loader = "configuration.api.CustomApplicationLoader"