【转载】tomcat加载spring过程以及实例化bean
omcat启动加载web.xml配置的ContextLoaderListener,调用方法contextInitialized开始初始化,
在initWebApplicationContext中先创建一个XMLWebapplicationContext,
再调用 refresh方法,refresh方法会刷新web容器,
读取文件application.xml(默认),初始化IOC容器(BeanFactory)加载各个资源文件和bean。
加载applicationContext.xml使用了一个XMLBeanDefinitionReader,先读取成为一个Document对象,
再使用一个BeanDefinistionDocumentReader解析document对象
遍历document对象的所有element元素
使用不同的namespacehander来解析element,每个handler都有多个BeanDefinitionParser用来解析具体的标签
此处讲解默认<bean>加载
到此就是一个IOC容器初始化过程
接下来就是beanFactory完成之后,其他的一些事情,不描述了。
webapplicationContext初始化之后,IOC容器BeanFactory将会对bean进行初始化
这些是在tomcat启动时就进行实例化了
如果bean是 prototype和 延迟加载的,则在第一次使用bean时,实例化bean。
https://blog.csdn.net/yztezhl/article/details/52300663