Как связать фабрику вспомогательных инъекций, аннотированную с помощью Guice 3.0?

TL;DR - я хочу сделать это:

bind(FooFactory.class)
    .annotatedWith(BarAnnotation.class)
    .toProvider(FactoryProvider.newFactory(FooFactory.class, Foo.class));

Но с помощью Guice 3.0 FactoryModuleBuilder.

Вот моя установка:

interface FooFactory {
  public Foo create(Bar assisted);
}

class Foo {
  @Inject
  public Foo(Baz dependency, @Assisted Bar assisted) {}
}

class SomeComplicatedClass {
  @Inject
  public(@BarAnnotation FooFactory fooFactory) {}
}

В Guice 2.0 я могу сделать это:

bind(FooFactory.class)
    .annotatedWith(BarAnnotation.class)
    .toProvider(FactoryProvider.newFactory(FooFactory.class, Foo.class));

Но, похоже, нет эквивалента с использованием Guice 3.0 (с использованием FactoryModuleBuilder).

Примечание: @BarAnnotation здесь строго необходимо. Я не могу это изменить.

0 ответов

Другие вопросы по тегам