HK2相当于Guice的静态注入绑定和ProviderBinding

时间:2016-09-29 19:31:53

标签: java guice hk2

我的代码如下

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选项...

1 个答案:

答案 0 :(得分:0)

HK2使用Guice使用提供商的工厂。如果将提供者重新实现为工厂非常困难,HK2 devs recommend创建一个实现ret = CombineHashCodes(ret, comparer.GetHashCode(GetValue(i))); 的类并接受Provider作为构造函数arg。