SpringMvc主支源码分析
2019-10-23 11:35:22 20 举报
SpringMvc主支源码分析
作者其他创作
大纲/内容
2、找到对应的HandlerMapping,并找到HandlerExecutionChain,HandlerExecutionChain内部包含了拦截器
5、异常处理前面4个步骤出现异常使用HandlerExceptionReSolver策略解决
View
Spring MVC项目
浏览器
HandlerMapping
RequestMappingHandlerAdapter
处理方法的返回值RequestMappingHandlerAdapterr内部使用HandlerMethodReturnValueHandlerComposite对象处理该对象内部拥有的HandlerMethodReturnValueHandler
HandlerMethodReturnValueHandler
找到spring容器中被@Controller修饰的bean以及被@RequestMapping注解修饰的类和方法
1、遍历HandlerMapping
3、使用HandlerExecutionChain中的HandlerHandler遍历HandlerAdapter集合找到支持cihandler的HandlerAdapter
initStrategies
7、ViewResolver解析得到View
HandlerMethodArgumentResolver
request
初始化各种策略protected void initStrategies(ApplicationContext context) { this.initMultipartResolver(context); this.initLocaleResolver(context); this.initThemeResolver(context); this.initHandlerMappings(context); this.initHandlerAdapters(context); this.initHandlerExceptionResolvers(context); this.initRequestToViewNameTranslator(context); this.initViewResolvers(context); this.initFlashMapManager(context); }
ViewResolver
HandlerInterceptor调用postHandle方法
RequestMappingHandlerMapping
核心实现类
HandlerMethod
HandlerInterceptor调用preHandle方法
Response
HandlerMethod是一个封装了Method以及Parameter的Helperclass。在HandlerMapping中被构造,并在HandlerAdapter中被使用。
4、使用HandlerAdapter得到ModelAndView
HandlerAdapter
解析方法的参数RequestMappingHandlerAdapter内部使用HandlerMethodArgumentResolverComposite对象处理该对象内部拥有的HandlerMethodArgumentResolver
6、根据ModelAndView使用ViewResolver进行解决
DispatcherServlet
HandlerInterceptor拦截调用afterCompletion
web.xml
0 条评论
下一页