IOC容器的初始化包括
我们可以看到定位和载入过程中接口调用。
Spring在实现中是把三个过程分开并使用不同的模块来完成,这样方便用户剪裁和扩展。
1: BeanDefinition的资源定位由ResourceLoader通过Resource接口完成。
比如文件系统中定义信息可以用:FileSystemResource,ClassPathResource来使用等等。
2:BeanDefinition的载入过程中把用户定义的Bean表示成IOC的内部数据结构BeanDefinition。
3:向IOC注册BeanDefinition的过程。这是通过BeanDefinitionRegistry接口实现完成的,这注册过程吧载入过程中得到BeanDefinition向IOC注册。IOC内部是通过HashMap来持有BeanDefinition数据的。
值得注意的是IOC容器初始化一般不包含Bean依赖注入的实现,它是第一次通过容器getBean获取Bean时。