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

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 здесь строго необходим.Я не могу это изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...