2016-08-02 62 views
1

我有以下服務 TopService that injects MidService that injects LowService 如何管理我在不同模塊之間的共享依賴關係?

我想在一個Maven項目使用TopServiceLowServiceA(我們稱之爲項目A)。 ProjectB依賴另一個使用TopServiceLowServiceB的maven項目(調用ProjectB)。

下面是我怎麼也得項目A的吉斯模塊定義:

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()); 
     }); 
    } 
} 

我只是想知道這是否是我的configre依賴的最好方式。我不喜歡這種方法的一件事是我必須每次手動綁定TopServiceMidServiceLowService

回答

0

只是製作CommonsModule和ProjectAModule和ProjectBModule,並根據項目使用2個模塊創建噴油器。

CommonsModule應包含

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

和ProjectAModule/ProjectBModule

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

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