【问题标题】:Inject Instance<Interface> : Spring and CDI compatibilityInject Instance<Interface> : Spring 和 CDI 兼容性
【发布时间】:2017-11-11 12:40:33
【问题描述】:

我想知道如何在 JUnit4 中将 Instance 与 Spring 一起使用

@Inject
Instance<IMyInterface> interfaces;

如果我使用

@Inject
List<IMyInterface> interfaces;

它适用于 Spring,但不适用于 CDI。
此外,我们可以将Provider 与 CDI 和 Spring 一起使用,但它不是可迭代的。

【问题讨论】:

  • 我的意思是 JUnit4 和 Spring (SpringJUnit4ClassRunner)。我已经编辑了我的帖子。
  • 请解释何时投反对票

标签: java spring dependency-injection cdi


【解决方案1】:

@Inject 注解来自 JSR-330-Dependency Injection for Java。 Spring 知道这个注解,简单地说,Spring 将其视为@Autowired 的替代品。就是这样。

但是,实例是 JSR 299 - 上下文和依赖注入的一部分。你可以看看 CDI 规范中的definition

Spring DI 完全不同,它没有实现 JSR-299 (CDI) 或任何其他标准。它甚至没有单独的 API 和实现,一切都只是粘合在一起。因此,使用 Spring不可能注入 Instace。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-09-28
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多