在Guice FAQ中,他们讨论了使用注释区分多个实例(有点)。
我的问题:我可以将 Impl 绑定到没有注释的接口,并将另一个 Impl 绑定到具有注释的同一个接口吗?基本上,我的第一个 impl 将充当其他 impl 的容器。
bind(SecurityAuthorizer.class).to(CompositeSecurityAuthorizer.class);
bind(SecurityAuthorizer.class)
.annotatedWith(Names.named(ComponentAuthorizer.class.getSimpleName()))
.to(ComponentAuthorizer.class).in(Singleton.class);
额外的问题,我们对 Names.named(..) 的使用是否被认为是错误的形式?只是试图避免创建大量注释类,但又想要能够重构的好处。