在web.xml里配置分发servlet和ContextLoaderListener,ContextLoaderListener是spring提供的类,它继承了ContextLoader类和实现了ServletContextListener接口。
ContextLoader类负责初始化容器,初始化方法是 initWebApplicationContext(ServletContext servletContext)
ServletContextListener负责监听web容器的创建和销毁,分别对应contextInitialized(ServletContextEvent sce) 和 contextDestroyed(ServletContextEvent sce) 方法,
在初始化方法中调用ContextLoader提供的initWebApplicationContext方法来初始化 Web 环境下的spring 容器WebApplicationContext,WebApplicationContext的类层次关系如下
从spring默认使用的mlWebApplication入手,与IOC容器的初始化过程类似,这个过程也有loadBeanDefinitions方法对BeanDefinition的引入,是通过XmlBeanDefinitionReader 来载入Bean定义信息的,最终完成对上下文的初始化过程
,还可以看到一些默认的配置项,不如默认的配置文件的路径和获取
如果想获取更详细的初始化过程代码可以详细到各个方法里看 :)
以上是笔者通过对spring 源码的分析总结出的一些拙见,如有错误 欢迎指出。
原文地址:https://www.cnblogs.com/jasonChai/p/10147715.html