У меня есть код как следующийHK2 эквивалент связывания статического впрыска Guice и ProviderBinding
public class ProcessorFactory {
@Inject static Provider<Processor> processorProvider;
...
}
public class ProcessorProvider implements Provider<Processor> {
...
@Override
public Processor get() {
...
}
}
и Guice связывание выполняется следующим образом
bind(Processor.class).toProvider(ProcessorProvider.class).in(ServletScopes.REQUEST);
requestStaticInjection(ProcessorFactory.class);
Однако мой проект был создан кем-то еще используя HK2. Может ли кто-нибудь помочь мне с эквивалентной привязкой в HK2? Кажется, что существуют только опции bind, bindAsContract и bindFactory ...
А я вижу, спасибо. А как насчет статических инъекций? есть ли эквивалент для 'requestStaticInjection'? – jamesw1234
HK2 не делает статической инъекции из-за трудностей, связанных с жизненным циклом статических инъекций (когда вы можете быть уверены, что это было введено?). Если вам нужны статические инъекции, создайте класс с нестационарными инъекциями (возможно, в области @Immediate), а в postConstruct этой вещи установите статику, которую вам нужно установить – jwells131313