Мой проект имеет аналогичную структуру:
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
}
}
Итак, когда я звоню getAuthUtil из AuthenticationComponent , он говорит, что authUtil равен нулю,но в случае Filters это неверно.Та же самая ситуация, когда я пытаюсь ввести объект scala, я также получаю ноль.
Есть идеи?