IOC容器的启动过程就是建立上下文的过程
该上下文是与servletContext相伴而生的。
在web.xml中
该上下文是spring容器。在spring容器的基础上,还有一个与WebMVC相关的上下文用来保存控制器(DispatcherServlet)需要的mvc对象,作为spring容器的子上容器。
然后我从这里开始为大家解读一下。如果有错误 望大家指出。这里是根上下文创建的开始。
spring容器创建之前,已经完成了servletContext的创建。
初始化spring上下文,调用父类ContextLoader的initWebApplicationContext的方法
进入该方法中,查看下面
首先进行判断,判断servletContext容器中是否存在spring容器,存在则抛异常
创建一个空的spring容器。默认使用xmlWebApplication
强转成xmlWebApplication的父类ConfigurableWebApplicationContext。
回到initWebApplicationContext方法中
看到configureAndRefreshWebApplicationContext方法。从方法名字可以看出,这里是 配置和刷新spring容器。
在这个方法当中,找到spring配置文件的路径。根据你在web.xml文件的全局配置
将路径设置到空的spring容器中,为后面完成spring容器的整个配置做基础。
在该方法的最后调用refresh()方法。这方法不多说,,,,,