tomcat載入spring過程以及例項化bean
阿新 • • 發佈:2018-11-14
參考: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。