1
我有两个不同的模块,它们具有不同的绑定到相同的接口和多个子模块。下面的例子使用多个具有相同绑定到不同类型的模块
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());
}
是否有任何解决方法?
你能编辑你列出的模块吗?如果是这样,您可能需要考虑[PrivateModule](http://google.github.io/guice/api-docs/latest/javadoc/com/google/inject/PrivateModule.html),因此您只能公开'Publisher.class '和'Subscriber.class'。 –
谢谢,这是一个很大的选择。但是我们有太多的模块和接口..需要重构很多.. – Krishna