Scala Play DI问题:无法注入类或对象的字段

Scala Play DI问题:无法注入类或对象的字段,scala,dependency-injection,playframework,guice,Scala,Dependency Injection,Playframework,Guice,我的项目具有类似的结构: Application | |--> /ApplicationA | -> /app | ->Filters.scala | ->AuthenticationComponent.scala | -> /build.sbt | |--> /ApplicationB | -> /app | ->Module.scala | ->VanillaAuthenticationUti

我的项目具有类似的结构:

Application
|
|--> /ApplicationA
|   -> /app
|     ->Filters.scala
|     ->AuthenticationComponent.scala
|   -> /build.sbt
| 
|--> /ApplicationB
|   -> /app
|     ->Module.scala
|     ->VanillaAuthenticationUtil.scala
|   -> /build.sbt
|
|-> /conf
|-> /build.sbt
下面列出了Module.scala的代码:

class Module extends AbstractModule  {
  override def configure(): Unit = {
    bind(classOf[AuthenticationUtil])
      .annotatedWith(Names.named("authUtil"))
      .to(classOf[VanillaAuthenticationUtil]).asEagerSingleton()
  }
}
另外,ApplicationA不知道ApplicationB,ApplicationB依赖于ApplicationA

Filters.scala和AuthenticationComponent.scala的代码也列出了:

class Filters @Inject()(corsFilter: CORSFilter) extends HttpFilters {
  @Inject
  @Named("authUtil")
  var authUtil:AuthenticationUtil = _
  def filters = Seq(corsFilter, authUtil)
}

class AuthenticationComponent   {
  @Inject
  @Named("authUtil")
  var authUtil:AuthenticationUtil = _
  def getAuthUtil():AuthenticationFilter ={

  println(authUtil == null)
  authUtil
  }
}
所以,当我从AuthenticationComponent调用getAuthUtil时,它表示authUtil等于null,但在过滤器的情况下,它是false。同样的情况是,当我尝试注入scala对象时,我也接收到null


有什么想法吗?

我不推荐混合场和构造函数注入。将它移动到构造函数参数,它可能会工作