SpringMVC
2021-06-11 13:02:54 1 举报
SpringMVC执行流程及结构
作者其他创作
大纲/内容
View
3.使用HandlerExecutionChain中的Handler遍历HandlerAdapter集合找到支持此Handler的Adapter
RequestMappingHandlerMapping
解析方法的参数RequestMappingHandlerAdapter内部使用HandlerMethodArgumentResolverComputer对象处理该对象内部拥有HandlerMethodArgumentResolver集合
HandlerInterceptor拦截调用preHandler方法
实现类之一处理@RequestParam注解修饰的参数
4.使用HandlerAdapter得到ModelAndView
实现类之一处理返回类型为ModelAndView的方法
HandlerMethodReturnValueHandler
核心实现类
request
7.ViewResolver解析得到View
RequestParamMethodArgumentResolver
initStrategies
6.根据ModelAndView使用ViewResolver进行解析
2.找到HandlerMapping并得到HandlerExecutionChain.HandlerExecutionChain内部包括了拦截器
HandlerMethod是一个被封装了Method以及Parameter的helper class,在HandlerMapping中被构造,并在HandlerAdapter中被使用
HandlerInterceptor拦截调用postHandler方法
HandlerMethodArgumentResolver
实现类之一处理@ResponsetBody注解修饰的参数
HandlerInterceptor拦截调用afterCompletion
5.异常处理前面4个步骤可能会出现异常使用HanderExceptionResolver策略解决
HandlerMethod
处理器:Handler1.实现Controller接口2.@RequestMapping3.Servlet
解析方法的参数RequestMappingHandlerAdapter内部使用HandlerMethodReturnValueHandlerComputer对象处理该对象内部拥有HandlerMethodReturnValueHandler集合
@Controller注解修饰的bean以及被@RequestMappring注解修饰的类和方法
ModelAndViewMethodReturnValueHandler
ViewResolver
RequestMappingHandlerAdapter
DispatcherServlet
1.遍历HandlerMapping集合
初始化各种策略initMultipleResolverinitLocaleResolverinitHandlerMappingsinitHandlerAdaptersinitHanderExceptionResolverinitViewResolver
HandlerMapping
实现类之一处理@RequestBody注解修饰的参数
维护url-Handler
responsefreemarker、jsp、json、xml
RequestResponseBodyMethodProcessor
0 条评论
回复 删除
下一页