1,在web.xml里面配置监听器,容器启动的时候就会自动执行监听器里面的contextInitialized()
2,init 方法里面创建spring的web application context
3,将创建好的spring context 放到 servlet context 里面
servlet 回忆
当servlet 容器接收到一个请求时,servlet 容器会针对这个请求创建servletRequest 和
servletResponse对象,然后调用service 方法。并把这两个参数传递给service 方法。service 方
法通过servletRequest 对象获得请求的信息。并处理该请求。再通过servletResponse 对象生成
这个请求的响应结果。然后销毁servletRequest 和servletResponse 对象。我们不管这个请求是
post提交的还是get提交的,最终这个请求都会由service 方法来处理。
1,HttpServletBean init方法将web.xml中的param装到PropertyValues
2,初始化spring的 web application context
3,从servlet context里面的attr里面找,找到就配置并刷新web application context
4,到不到就找,直到找到,并刷新
init步骤:
1,配置。
- 设置上下文
- 设置全局配置
- 设置命名空间
- 设置监听器
- 设置可配置环境
- 设置完了之后的处理
- 应用这个初始化配置
2,刷新。
- 刷新各种resovler
- 刷新各种handler
DispatcherServlet 运行流程
1,从doSevice 开始。做一些前置操作,给request设置各种属性值
2,真正处理的流程doDispatch
- 检查文件上传
- 获取映射器
- 获取适配器
- 在handle之前,检查是否有preHanlde -- 即拦截器
- handle,正式处理controller里面的内容,返回mv
- 设置识图名称
- 后置处理
遗留:
1,springboot 中 MVC的运行流程
2,@AdviceController注解探秘
3,WebMvcConfigurer 探究