我知道 Instance 不是 JSR 330 的一部分,但是是否有 Spring 等效项?我对 Instance 实现 Iterable 这一事实很感兴趣,因此 Provider 将不是正确答案。
public interface Report { ... }
(有 2 个类使用 @Named
注释实现 Report)
@Named
public class ReportRunner {
@Inject private Instance<Report> reports;
}
结果: 找不到类型为 [javax.enterprise.inject.Instance] 的符合条件的 bean 来依赖...
最佳答案
关闭此问题,因为它已在评论中得到回答。正如上面提到的@JB Nizet,List<Report>
作品。
对于那些想知道我在做什么的人来说,它是一个通用的报告运行器,其中每个报告都有自己的实现类,每个类都有一组数据库存储参数。通过此设置,我可以让报告运行器在我的应用程序服务器中运行,根据需要放入 jars,在 ReportRunner 维护的子上下文(仅扫描报告包)上点击重新扫描,我可以修改报告苍蝇,无需重新启动服务器。
关于spring - 在 Spring 中使用 @Inject Instance<blah>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22875680/