[英]How to manage my shared dependencies between different modules?
I have the following services TopService that injects MidService that injects LowService
我有以下服务
TopService that injects MidService that injects LowService
I want to use TopService
with LowServiceA
in one maven project (let's call it ProjectA). 我想在一个maven项目中使用
TopService
和LowServiceA
(我们称之为ProjectA)。 ProjectB depends on another maven project (call ProjectB) that uses the TopService
with LowServiceB
. ProjectB依赖于另一个使用
TopService
和LowServiceB
maven项目(调用ProjectB)。
Below is how I have ProjectA's Guice Module defined: 以下是我如何定义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());
});
}
}
I'm just wondering if this is the best way to configre my dependencies. 我只是想知道这是否是配置我的依赖项的最佳方法。 One thing I don't like about this approach is that I have to manually bind
TopService
, MidService
, and LowService
each time. 我不喜欢这种方法的一件事是我
TopService
都必须手动绑定TopService
, MidService
和LowService
。
just make CommonsModule and ProjectAModule and ProjectBModule and create injector using 2 modules depending on project. 只需制作CommonsModule和ProjectAModule以及ProjectBModule,并根据项目使用2个模块创建注入器。
CommonsModule should contain CommonsModule应该包含
bind(TopService.class);
bind(MidService.class);
and ProjectAModule/ProjectBModule 和ProjectAModule / ProjectBModule
bind(LowService.class).toInstance(new LowServiceA());
or 要么
bind(LowService.class).toInstance(new LowServiceB());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.