我有两个不同的模块,它们对相同的接口和多个子模块有不同的绑定。下面的例子
public PublisherModule {
public void configure() {
bind(ITransport.class).to(TCPTransport.class)
install(new ServerModule()) //Has Binding EndPoint.class to ServerEndPoint.class
}
}
public SubscriberModule {
public void configure() {
bind(ITransport.class).to(HttpTransport.class)
install(new ClientModule()) //Has binding EndPoint.class to ClientEndPoint.class
}
}
现在我遇到了两个模块需要一起使用的用例。有什么解决方案吗?
PS:我现在不能使用任何命名绑定。我正在寻找类似的解决方案(这不起作用)
public void configure() {
Injector injPublisher = Guice.createInjector(new PublisherModule());
Publisher pub = injPublisher.createInjector(Publisher.class)
bind(Publisher.class).toInstance(pub)
install(new SubscriberModule());
}
有什么解决办法吗?