Я использую Guice для инъекции зависимостей, и я немного смущен. В разных упаковках имеются две анкеты Named
:Использование именованной инъекции в Guice
com.google.inject.name.Named
и javax.inject.Named
(JSR 330?).
Я очень хочу зависеть от javax.inject.*
. Пример кода:
import javax.inject.Inject;
import javax.inject.Named;
public class MyClass
{
@Inject
@Named("APrefix_CustomerTypeProvider")
private CustomerTypeProvider customerTypeProvider;
}
В моем модуле имен я могу иметь следующую строку:
bind(CustomerTypeProvider.class).annotatedWith(...).toProvider(CustomerTypeProviderProvider.class);
Вопрос: Мне интересно, что я должен положить где многоточие есть? Я бы ожидал чего-то вроде com.google.inject.name.Names.named("APrefix_CustomerTypeProvider")
, но этот возвращает com.google.inject.name.Named
, в то время как мне нужен один в javax.inject
.
CustomerTypeProviderProvider.class.getAnnotation(javax.inject.Named.class)
также не подходит хорошо, потому что CustomerTypeProviderProvider
(игнорируйте глупое имя, устаревшая проблема) не аннотируется.