2016-08-02 18 views
1

Ich habe folgende Dienstleistungen TopService that injects MidService that injects LowService Wie verwalte ich meine gemeinsamen Abhängigkeiten zwischen verschiedenen Modulen?

Ich möchte TopService mit LowServiceA in einem Maven-Projekt verwenden (wir es ProjectA nennen). ProjectB hängt von einem anderen Maven-Projekt (Aufruf ProjectB) ab, das TopService mit LowServiceB verwendet.

Unten ist, wie ich ProjectA des Guice Module definiert haben:

ProjectAModule extends AbstractModule { 

    @Override 
    protected void configure() { 
     install(new PrivateModule() { 
     @Override 
     protected void configure() { 
      bind(TopService.class); 
      bind(MidService.class); 
      bind(LowService.class).toInstance(new LowServiceA()); 
     }); 
     install(new PrivateModule() { 
     @Override 
     protected void configure() { 
      install(new ProjectBModule()); 
      bind(TopService.class); 
      bind(MidService.class); 
      bind(LowService.class).toInstance(new LowServiceB()); 
     }); 
    } 
} 

Ich frage mich nur, ob dies der beste Weg, um meine Abhängigkeiten configre ist. Eine Sache, die ich an diesem Ansatz nicht mag, ist, dass ich jedesmal TopService, MidService und LowService manuell binden muss.

Antwort

0

machen Sie CommonsModule und ProjectAModule und ProjectBModule und erstellen Sie Injektor mit 2 Modulen je nach Projekt.

CommonsModule sollte enthalten

bind(TopService.class); 
bind(MidService.class); 

und ProjectAModule/ProjectBModule

bind(LowService.class).toInstance(new LowServiceA()); 

oder

bind(LowService.class).toInstance(new LowServiceB()); 
Verwandte Themen