我有以下服务
TopService that injects
MidService that injects
LowService
我想在一个maven项目中使用TopService
和LowServiceA
(让我们称之为ProjectA)。 ProjectB依赖于另一个使用TopService
和LowServiceB
的maven项目(调用ProjectB)。
以下是我如何定义ProjectA的Guice模块:
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());
});
}
}
我只是想知道这是否是配置我的依赖项的最佳方式。我不喜欢这种方法的一件事是我每次都必须手动绑定TopService
,MidService
和LowService
。
答案 0 :(得分: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());