1. 程式人生 > >tomcat載入spring過程以及例項化bean

tomcat載入spring過程以及例項化bean

參考:https://blog.csdn.net/yztezhl/article/details/52300663

tomcat啟動載入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。