SpringMVC执行流程
2021-04-12 16:12:43 2 举报
SpringMVC原理
作者其他创作
大纲/内容
ModelAndViewMethodReturnValuehandler
DispatcherServlet
ViewResolver
request
5. 异常处理,前面4个步骤都有可能发生异常。使用HandlerExceptionResolver策略解决
RequestMappingHandlerAdapter
7. ViewResolver解析得到View
4. 使用HandlerAdapter得到ModelAndView
实现类之一处理返回值类型为ModelAndView的方法
实现类之一处理@ResponseBody注解修饰的返回值
HandlerMapping
RequestPraramMethodArgumentResolver
HandlerAdapter
核心实现类
处理方法的返回值RequestMappingHandlerAdapter内部使用HandlerMethodReturnValueHandlerComposite对象处理该对象内部拥有HandlerMethodReturnValueHandler集合
RequestResponseBodyMethodProcessor
找出Spring容器中被@Controller注解修饰的bean以及被@RequestMapping注解修饰的类和方法
HandlerMethod是一个封装了Method以及Parameter的helper class,在HandlerMapping中被构造,并在HandlerAdapter中被使用
RequestMappingHandlerMapping
HandlerInterceptor拦截调用afterCompletion方法
初始化各种策略initMultipartResolverinitLocaleResolverinitHandlerMappingsinitHandlerAdaptersinitHandlerExceptionResolversinitViewResolvers
1.遍历handlerMapping集合
核心实现
View
2. 找到对应的HandlerMapping得到HandlerExecutionChain(内部包括了拦截器)
HandlerMethod
6. 根据ModelAndView使用ViewResolver进行解析
HandlerInterceptor拦截调用preHandle方法
initStrategies
HandlerInterceptor拦截调用postHandle方法
解析方法参数RequestMappingHandlerAdapter内部使用HandlerMethodArgumentResolverComposite对象处理该对象内部拥有HandlerMethodArgumentResolver集合
实现类之一处理@RequestParam注解修饰的参数
实现类之一处理@RequestBody注解修饰的参数
3. 使用HandlerExecutionChain中的Handler遍历HandlerAdapter集合,找到支持此Handler的HandlerAdapter
收藏
收藏
0 条评论
下一页