容器的基础 XmlBeanFactory(1)
这是第一篇Spring源码分析,主要是为了找到继续阅读源码的兴趣,了解一个概况同时找了和
ignoreDependencyInterface
深入分析了下。
ignoreDependencyType
链接
从头看点这里
下载源码、笔记以及对应的例子进入我的GitHub
参考链接
- 打开BeanFactory ignoreDependencyInterface方法的正确姿势
- BeanFactoryPostProcessor详解 - 愤怒的苹果ext的博客
- BeanFactoryPostProcessor和BeanPostProcessor的调用时点
概况
- 我们通过一个简单例子切入源码,阅读spring-bean-test1,简单了解获取一个
的过程bean
- 首先介绍了核心类
,其次按照在该类注释中@see顺序大致了解下各个类DefaultListableBeanFactory
- 进入到
了解XmlBeanFactory
和XmlBeanFactory
的区别,了解构造过程DefaultListableBeanFactory
- 进入到
的构造函数,进而深入到AbstractAutowireCapableBeanFactory
中查看其作用,以及与ignoreDependencyInterface
区别ignoreDependencyType
- 最后通过小例子ignored-dependency-test来查看
以及ignoreDependencyType
是如何工作的在自动装配的过程中忽略某些类ignoreDependencyInterface
总结
-
是BeanFactoryPostProcessor
提供的一个扩展点,让我们可以在所有Spring
都加载、注册完成(还未初始化)的时候,允许我们做一些修改,例子中我们可以在自动注入的时候忽略某些属性的注入,或者修改成员属性的值bean
-
以及ignoreDependencyType
两者是不同的,平时ignoreDependencyInterface
的功能已经足够使用,而ignoreDependencyType
是忽略接口中的ignoreDependencyInterface
方法,从而在实现类中具有相同参数的set
方法也会被忽略,从而对应的成员在自动装配的时候被忽略,目的是为了某些重要的成员属性(比如set
、ApplicationContextAware
)统一交由框架进行注入。BeanFactoryAware