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。




Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐