11 Stimmen

Guice und Scala - Injektion auf Generika-Abhängigkeiten

Ich versuche, eine Bindung eines generischen Traits mit Guice zu erstellen

Sehen Sie, wie die trait ist definiert

trait Repository[T]

Siehe die trait Umsetzung

class DomainRepository extends Repository[Domain]

Meine configure-Methode in DomainPersistenceModule ist:

def configure() {
   bind(classOf[Repository[Domain]])
     .annotatedWith(classOf[DomainDependency])
     .to(classOf[DomainRepository])
     .in(Scopes.SINGLETON)
}

Die Variable, deren Abhängigkeit injiziert wird, ist:

  @Inject
  @DomainDependency
  var repository:Repository[Domain] = _

Die Injektion erfolgt hier:

val injector:Injector = Guice.createInjector(new PersistenceModule())

val persistenceService:PersistenceService =
        injector.getInstance(classOf[DomainPersistenceService])

Der Fehler ist:

Caused by: com.google.inject.ConfigurationException: Guice configuration errors:

1) No implementation for repository.Repository<domain.Domain> annotated with @module.annotation.DomainDependency() was bound.
  while locating repository.Repository<domain.Domain> annotated with @module.annotation.DomainDependency()
    for field at service.persistence.DomainPersistenceService.repository(DomainPersistenceService.scala:19)
  while locating service.persistence.DomainPersistenceService

Habe ich etwas verpasst? Vielen Dank im Voraus

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X