2017-05-24 1 views
0

J'écris un module de Guice et dans ce module j'ai une méthode de provisions.Guice: Obtenir des dépendances à l'intérieur fournit la méthode

class FooModule extends ScalaModule { 
    @Provides 
    @Singleton 
    def providesFoo() : Foo = { 
     new Foo() 
    } 
} 

Le problème est que le constructeur de new Foo prend une barre de type comme paramètre.

Je veux savoir comment puis-je demander Guice de me donner une instance de Bar pour que je puisse faire une nouvelle Foo dans le module

Répondre

1

Demander ces paramètres en les spécifiant en tant que paramètres de la méthode. À partir de Provides method wiki documentation:

Les dépendances peuvent être transmises en tant que paramètres de la méthode. L'injecteur va exercer les liaisons pour chacun d'entre eux avant d'invoquer la méthode.

Alors:

@Provides 
@Singleton 
def providesFoo(val bar : Bar) : Foo = { 
    new Foo(bar) 
}