本文主要是介绍SpringIOC源码分析(五)__IOC容器的初始化__资源加载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、IOC容器初始化过程
IOC容器初始化是由如上篇所讲到的refresh(),方法来启动的,启动包括BeanDefinition的Resource定位,载入和注册这个主要过程。
- 过程一:resource定位,是由resourceLoader通过getResource(String location) 的接口来完成的。
- 过程二:将用户定义的Bean表示为IOC容器的内部数据结构BeanDefinition。
- IOC容器注册这些BeanDefination到容器。通过调用BeanDefinitonRegisty实现Bean的注册
二、Resource定位的解读
首先这张图从左往右看,我们首先看到两个3个容器,BeanFactoy和它派生出的ApplicatoinContext,DefalutListableBeanFactoy。
DefalutListableBeanFactoy是一个功能完整纯粹的IOC容器,需要为他配置对应的资源加载器,才能加载到对应的Bean。使用DefalutListableBeanFactoy这种更底层的容器,能提高定制IOC容器的灵活性。
ApplicatoinContext容器就已经提供了各种高级的功能,包括ResourceLoader,ResourceLoader派生出了3中加载Resource的方式。
- classPathXmlApplicationContext 可以从Class path载入Resource
- xmlWebApplicationContext 从Web容器载入
- fileSystemXmlApplicationContext 从文件系统载入
完整的类图:
这篇关于SpringIOC源码分析(五)__IOC容器的初始化__资源加载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!