Spring不支持接口注入吗?

我知道Spring不支持接口注入,我已多次阅读过。

但是今天我在Martin Fowler( 链接 )中看到一篇关于IOC的文章时,似乎在Spring中使用ApplicationContextAware是类似于Interface注入的。

当我们的Spring bean需要Spring’上下文引用时,我们将实现ApplicationContextAware并实现setApplicationContext(ApplicationContext context)方法,并且我们将bean包含在配置文件中。 这是不是和Interface注入相同,那里告诉Spring注入(或),比如说将上下文的引用传递给这个bean?

或者我在这里遗漏了什么? 感谢您的任何信息!

ManiKanta

如果你的意思是维基百科上定义的接口注入,那么Spring支持ResourceLoader,ApplicationContexts,MessageSource等开箱即用,分别带有ResourceLoaderAware , ApplicationContextAware和MessageSourceAware接口。

通过注册BeanPostProcessor,还可以使用新接口扩展此机制。

Spring参考手册非常清楚地解释了这种能力(以及何时应该(不)使用它)。 顺便说一句,我一般认为弹簧参考手册比“互联网上的人”说的要可靠得多。