我如何可以绑定一个工厂,一个标注合格的注射点?(How can I bind a factory t

2019-10-22 18:34发布

我问及得到的回答如何命名的注射点进行绑定。

我不知道如何工厂绑定到一个合格的注射点。

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 。

Answer 1:

我需要限定符标注的实现。

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

所以,我可以这样使用。

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

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



文章来源: How can I bind a factory to a annotation-qualified injection point?