2016-08-02 86 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());