1.initMultipartResolver(context); 处理文件上传
2.initLocaleResolver(context);处理国际化配置
3.initThemeResolver(context);主题配置
4.initHandlerMappings(context);
5.initHandlerAdapters(context);
(1)HttpRequestHandlerAdapter:Http请求适配器
(2)SimpleControllerHandlerAdapter:简单控制器处理器适配器,处理实现org.springframework.web.servlet.mvc.Controller接口的控制器
(3) AnnotationMethodHandlerAdapter:基于注解的实
6.initHandlerExceptionResolvers(context):异常处理,实现
7.initRequestToViewNameTranslator(context);加载逻辑视图解析
8.initViewResolvers(context);初始化视图解析器
9.initFlashMapManager(context);用户存储、检索、管理FlashMap实例
一个真实的处理流程
(1)绑定请求参数到当前线程
image.png(2)委托给doService进一步处理
1.checkMultipart。如果是文件上传则转换request请求为DefaultMultipartHttpServletRequest
2.获取对应的handle
image.png 2.根据Hadler找到对应的HadlerAdapter image.png3.缓存处理,Last-Modified机制,只要实现LastModified接口即可
image.png 4.拦截器的处理 image.png image.png5.真正的逻辑处理
image.pngSimpleControllerHandlerAdapter中的处理,最终调用的是你实现了org.springframework.web.servlet.mvc.AbstractController#handleRequest的接口
image.png 6.拦截器的postHandle处理 image.png7.根据视图跳转页面
image.png image.png(3)请求结束恢复线程至原始状态
(4)请求处理后发布时间通知
网友评论