Spring mvc学习总结

解spring mvc的什么特征

  1. 我想通过在实际应用中需要明白这些特征原理。
  2. 需要了解DispatcherServlet,DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter,ViewResolver,Interceptor,ExceptionHandler,LocaleResolver(i18n国际化组件),Controller支持请求参数,返回参数。
  3. 需要了解这些组件工作请求流程。熟悉各个组件的调用位置。
  4. 了解spring mvc的整体架构,方便自行扩展。

spring mvc 组件时序图

image

  1. browse的请求都会被DispatchServlet所拦截,调用doDispatch方法,DispatchServlet是主要request请求处理组件,很多属性组件在init被set进来。MultipartResolver,LocaleResolver,handlerMappings,handlerAdapters,handlerExceptionResolvers这些常用组件。
  2. 2-4步骤HandlerExecutionChain获取过程,
    RequestMappingHandlerMapping的父类AbstractHandlerMapping.getHandler(HttpServletRequest request) 获取了HandlerMethod,并在getHandlerExecutionChain方法里构建HandlerExecutionChain, HandlerExecutionChain对象主要有HandlerMethod属性(具体controller方法),该request需要interceptorList。
  3. RequestMappingHandlerMapping
  4. 步骤5是根据methodHandler获取对应的HandlerAdapter。
  5. 执行HandlerExecutionChain的方法前interceptor拦截器,
  6. 步骤10,调用HandlerAdapter.handle方法,里面会根据HandlerMethodArgumentResolver,根据参数调用 进行选择是否调用HttpMessageConverter 或者ConversionService 处理。
  7. 13并会执行参数注入与参数validate。
  8. 步骤14,最后调用controller业务层。
  9. 最近返回ModelAndView对象在DispatchServlet,
  10. 继续执行HandlerExecutionChain.applyPostHandle应用处理后interceptor。
  11. 方法processDispatchResult是对handlerExceptionResolvers处理。
  12. 完成。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值