Java HK2相当于Guice';s静态注入绑定和ProviderBinding
我有如下代码Java HK2相当于Guice';s静态注入绑定和ProviderBinding,java,guice,hk2,Java,Guice,Hk2,我有如下代码 public class ProcessorFactory { @Inject static Provider<Processor> processorProvider; ... } public class ProcessorProvider implements Provider<Processor> { ... @Override public Processor get() { ... } } 然而,我的项目是由其
public class ProcessorFactory {
@Inject static Provider<Processor> processorProvider;
...
}
public class ProcessorProvider implements Provider<Processor> {
...
@Override
public Processor get() {
...
}
}
然而,我的项目是由其他人使用HK2建立的。有人能帮我做HK2的同等装订吗?似乎只有bind、bindAsContract和bindFactory选项…HK2使用工厂,而Guice使用提供者。如果很难将提供程序重新实现为工厂,请创建一个实现
工厂并接受提供程序作为构造函数参数的类。HK2使用工厂,而Guice使用提供程序。如果将提供程序重新实现为工厂非常困难,请创建一个实现Factory
并接受提供程序作为构造函数arg的类。啊,我明白了,谢谢。静态注射怎么样?requestStaticInjection
是否有等价物?由于静态注入生命周期相关的困难,HK2不执行静态注入(您何时可以确定它已被注入?)。如果您需要静态注入,请使用非静态注入创建一个类(可能在@Immediate scope中),并在该类的后构造中设置您需要的静态setAh,我明白了,谢谢。静态注射怎么样?requestStaticInjection
是否有等价物?由于静态注入生命周期相关的困难,HK2不执行静态注入(您何时可以确定它已被注入?)。如果您需要静态注入,请使用非静态注入创建一个类(可能在@Immediate scope中),并在该对象的后构造中设置您需要设置的静态
bind(Processor.class).toProvider(ProcessorProvider.class).in(ServletScopes.REQUEST);
requestStaticInjection(ProcessorFactory.class);