为什么'实例'从不迭代任何实现?我错过了什么?
JBoss EAP 6.3.0.GA(AS 7.4.0.Final-redhat-19)
public interface Simple { }
public class SimpleA implements Simple { public SimpleA() { } }
public class SimpleB implements Simple { public SimpleB() { } }
public class SimpleUser {
@Inject @Any Instance<Simple> instance;
@PostConstruct public void init() {
for (final Simple simple : instance) {
System.out.println(simple);
}
}
}
答案 0 :(得分:0)
如果它帮助了其他人,我也使用Deltaspike 1.5.2并遇到同样的问题(如果我删除Deltaspike,我不再有问题)。
在我的情况下,添加生产者方法并没有解决它。看了看我的BeanProvider,它解决了这个问题,但远非优雅。
https://deltaspike.apache.org/documentation/core.html#BeanProvider
我不得不打电话
List<MyServiceInterface> myServiceList = BeanProvider.getContextualReferences(MyServiceInterface.class, false, false);
可能有更好的方法。我注意到默认情况下Deltaspike打开了一堆扩展,但无法找到关于如何禁用我没有使用的扩展的文档,因为我怀疑可能会导致此问题。