【发布时间】:2012-03-15 13:19:20
【问题描述】:
我有两个接口 A 和 B,B 正在扩展 A。
我有一个提供者能够提供实例,其类正在实现 B(因此是 A)。
我想将 Provider 绑定到 B.class(直截了当)和 A.class 在单例范围内使用 Annotation。
bind(B.class).toProvider(MyBImplProvider.class).in(Scopes.SINGLETON);
bind(A.class).annotatedWith(Names.named("B")).toProvider(MyBImplProvider.class).in(Scopes.SINGLETON);
无论我是通过 B.class 注入还是通过 A.class+Annotation 注入,如何从提供者返回相同的实例。例如,我希望能够将构造函数定义为
@Inject
C(B param)
或
@Inject
C(@Named("B") param)
在这两种情况下,我都希望使用相同的单例对参数进行评估。
【问题讨论】:
标签: java dependency-injection guice