Spring学习(三)之依赖注入实现
涉及源码解析。
一. 简单依赖注入测试代码:
二. 对BeanFactory bf=newXmlBeanFactory(new ClassPathResource(“…”))分析。
BeanFactory bf=newXmlBeanFactory(newClassPathResource(“…”));有些过时了。最顶上为核心类XmlBeanFactory继承自 DefautListableBeanFactory 。
整个BeanFactory类图:
总的来说逻辑关系为:
1. 将配置文件封装为Resource类 Resource resource= newClassPathResource(“…”);
图示Resource跟ClassPathResource:
资源加载方式:
2. 对配置文件读取 即new XmlBeanFactory(resource) 一直到doLoadBeanDefinitions
XmlBeanFactory构造函数中有一个方法this.reader.loadBeanDefitions(resource),其中reader为XmlBeanFactoryReader核心类。类图:
读取配置文件总的逻辑图:
文字描述为:
考虑到Resource可能有编码要求故EncodeResource.
3. doLoadBeanDefinitions
总图:
三个步骤对应三个函数:
三. 对第二句话getbean分析,未完待续...