我知道 Spring 不支持接口注入,而且我已经读过很多次了。
但今天,当我看到 Martin Fowler 写的一篇关于国际奥委会的文章时(link http://martinfowler.com/articles/injection.html#InterfaceInjection),看来在Spring中使用ApplicationContextAware有点类似于Interface注入。
当我们的 Spring bean 中需要 Spring 上下文引用时,我们将实现 ApplicationContextAware 并实现 setApplicationContext(ApplicationContext context) 方法,并且我们将在配置文件中包含该 bean。这与接口注入不一样吗?接口注入告诉 Spring 注入(或者)将上下文的引用传递到这个 bean 中?
或者我在这里遗漏了一些东西?感谢您提供任何信息!
玛尼坎塔
如果你的意思是接口注入正如维基百科上的定义 http://en.wikipedia.org/wiki/Dependency_injection#Types,spring 通过接口对 ResourceLoaders、ApplicationContexts、MessageSource 等提供开箱即用的支持资源加载器感知 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ResourceLoaderAware.html, 应用上下文感知 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ApplicationContextAware.html, 消息源感知 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/MessageSourceAware.html, 分别。
还可以通过注册一个新的接口和依赖项来扩展此机制Bean后处理器 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html.
Spring 参考手册explains http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-aware这种能力(以及何时应该(不)使用它)非常清楚。顺便说一句,我通常发现弹簧参考手册比“互联网上的某人”所说的更可靠。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)