Spring的核心是IOC和AOP,IOC的本质是将资源文件(如applicationContext.xml)配置的bean(java对象)信息解析出来,然后放到BeanFactory(Spring容器)的Map中(这一步就是所谓的注册),这样以后程序就可以直接从BeanFactory中拿Bean的信息
为完成IOC容器初始化,Spring设计了层次化的类并使用一些设计模式来组织这样一个过程。在分析源码过程之前要对Spring的类图有一个大概的了解:



图一:IOC容器主要类图
图二:定义从外面加载资源的接口
图三: bean的相关定义
以上3幅图来源于:链接,感谢^_^
Spring的IOC相关的源码解析基本上围绕上面3幅图的主要接口和类。Spring的IOC本质上就做了以下3件事:
加载配置文件
解析配置文件并注册Bean
实例化Bean