【发布时间】:2011-02-19 02:34:18
【问题描述】:
我知道 Spring 不支持接口注入,我已经读过很多次了。
但是今天我看到 Martin Fowler (link) 的一篇关于 IOC 的文章,似乎在 Spring 中使用 ApplicationContextAware 有点类似于接口注入。
当我们的 Spring bean 中需要 Spring 的上下文引用时,我们将实现 ApplicationContextAware 并实现 setApplicationContext(ApplicationContext context) 方法,并将 bean 包含在配置文件中。这和接口注入不一样,在哪里告诉 Spring 注入(或),比如说,将上下文的引用传递给这个 bean?
或者我在这里遗漏了什么?感谢您提供任何信息!
马尼坎塔
【问题讨论】:
-
听起来你一直在读一些不好的东西,Spring非常确实支持接口注入。
-
“接口注入”到底是什么意思?我只有大约 100 个定义 void setSomething(Something) 的 bean 示例,其中 Something 是接口,而不是类,并且 spring 非常乐意注入实现接口的类实例?
-
@skaffman 我没有看到 Spring 支持接口注入,即使在 Spring 文档中 (static.springsource.org/spring/docs/3.0.x/…)
-
@bmargulies 为接口注入实现的 bean 并不是接口注入所说的。我们将通过实现依赖 bean 的关联接口将 bean 依赖注入到我们的实际对象中。因此,当实例化实际对象时,容器会调用该接口的注入器。请查看 Martin Fowler 的 IOC 文章(链接在发布的问题中)
标签: java spring inversion-of-control