最近在学习Spring源码,以下为IOC容器的简单总结。
IOC容器的启动过程
IOC容器的启动过程包括:BeanDefinition的Resource的定位、载入和注册三个基本过程。
Resource的定位:这个Resource定位指的是BeanDefinition的资源定位,它是由ResourceLoader通过统一的Resource接口来完成的。比如,文件系统的bean定义信息可以使用FileSystemResource来进行抽象;在类路径中定义的bean信息可以使用ClassPathResource来使用。这个定位过程类似与容器寻找数据的过程。
BeanDefinition的载入:这个载入过程是把找到的用户定义的数据表示成IOC容器的内部数据结构,也即是BeanDefinition。
BeanDefinition的注册:这个过程通过调用BeanDefinitionRegistry接口来实现完成的。这个过程就是,将IOC容器内部的BeanDefinition注册到一个HashMap(beanName,BeanDefinition)中