我有以下服务
注入(inject)的TopService
注入(inject)的 MidService
低服务
我想在一个 Maven 项目(我们称之为 ProjectA)中将 TopService
与 LowServiceA
一起使用。 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());
});
}
}
我只是想知道这是否是配置我的依赖项的最佳方法。我不喜欢这种方法的一件事是我每次都必须手动绑定(bind) TopService
、MidService
和 LowService
。
最佳答案
只需制作 CommonsModule 和 ProjectAModule 和 ProjectBModule 并根据项目使用 2 个模块创建注入(inject)器。
CommonsModule 应包含
bind(TopService.class);
bind(MidService.class);
和 ProjectAModule/ProjectBModule
bind(LowService.class).toInstance(new LowServiceA());
或
bind(LowService.class).toInstance(new LowServiceB());
关于java - 如何管理不同模块之间的共享依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38711411/