如何将工厂绑定到注释合格的注入点?

时间:2015-04-21 09:03:03

标签: unit-testing dependency-injection jersey testng hk2

asked并得到了如何绑定命名注入点的答案。

我不知道如何将工厂绑定到合格的注入点。

class SomeResource {

    @Inject
    @Some // is a @Qualifier, of course.
    private MyType qualified;
}

我准备了一家工厂

class SomeFactory extends Factory<MyType> {
}

我坚持为那个

创建一个活页夹
class SomeBinder extends AbstractBinder {
    @Override protected void configure() {
        // @@?
    }
}

我实际上想知道如何使用ServiceBindingBuilder#qualifiedBy

1 个答案:

答案 0 :(得分:3)

我需要一个限定符注释的实现。

public class Some_
    extends AnnotationLiteral<Some>
    implements Some {
}

这样我就可以这样使用了。

bindFactory(Someactory.class)
    .qualifiedBy(new Some_())
    .to(MyType.class);

我真的不明白为什么ServiceBindingBuilder没有采用注释类而不是实例的方法。