同じインターフェイスと複数のサブモジュールへの異なるバインディングを持つ 2 つの異なるモジュールがあります。以下の例
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
}
}
ここで、2 つのモジュールを一緒に使用する必要があるユース ケースに出会いました。解決策はありますか?
PS: 今のところ、名前付きバインディングは使用できません。私は(うまくいかない)のような解決策を探していました
public void configure() {
Injector injPublisher = Guice.createInjector(new PublisherModule());
Publisher pub = injPublisher.createInjector(Publisher.class)
bind(Publisher.class).toInstance(pub)
install(new SubscriberModule());
}
回避策はありますか?