有没有办法使用HK2将实例注入集合?

时间:2015-04-22 09:59:04

标签: java dependency-injection inversion-of-control hk2

我们说我们有以下代码:

@Inject
private Collection<SomeKind> myCollection;

我想要的是它们被解决后的依赖关系(我的意思是,SomeKind类型的所有类)也可以添加到集合中。我知道我可以注入ServiceLocator,并以编程方式在注册表中搜索实例,然后自己将它们添加到集合中,我只是想知道这种情况是否有一个共同的机制。

1 个答案:

答案 0 :(得分:1)

我认为你想要的是IterableProvider<SomeKind>。请参阅Documentation

它是Iterable,因此您可以在每个循环中使用它

for (SomeKind someKind: someKinds) {
    ...
}

您可以按名称查找它们

@Inject
IterableProvider<SomeKind> someKinds;
...
SomeKind someKind = someKinds.named("someName").get();

这里是complete example using Jersey