Spring框架原理系列(1)SpringMVC的运行工作原理

原创
03/30 19:02
阅读数 921

SpringMVC的工作原理图


Springmvc具体流程步骤

  • ⑴ 用户发送请求至DispatcherServlet。
  • ⑵ DispatcherServlet收到请求调用HandlerMapping查询具体的Handler。
  • ⑶ HandlerMapping找到具体的处理器(具体配置的是哪个处理器的实现类),生成处理器对象及处理器拦截器(HandlerExcutorChain包含了Handler以及拦截器集合)返回给DispatcherServlet。
  • ⑷ DispatcherServlet接收到HandlerMapping返回的HandlerExcutorChain后,调用HandlerAdapter请求执行具体的Handler(Controller)。
  • ⑸ HandlerAdapter经过适配调用具体的Hander(Controller即后端控制器)。
  • ⑹ Controller执行完成返回ModelAndView(其中包含逻辑视图和数据)给HandlerAdaptor。
  • ⑺ HandlerAdaptor再将ModelAndView返回给DispatcherServlet。
  • ⑻ DispatcherServlet请求视图解析器ViewResolver解析ModelAndView。
  • ⑼ ViewReslover解析后返回具体View(物理视图)到DispatcherServlet。
  • ⑽ DispatcherServlet请求渲染视图(即将模型数据填充至视图中) 根据View进行渲染视图。
  • ⑾ 将渲染后的视图返回给DispatcherServlet。
  • ⑿ DispatcherServlet将响应结果返回给用户。

Springmvc核心组件说明

  • (1)前端控制器DispatcherServlet(配置即可)功能:中央处理器,接收请求,自己不做任何处理,而是将请求发送给其他组件进行处理。DispatcherServlet 是整个流程的控制中心。
  • (2)处理器映射器HandlerMapping(配置即可)
  • 功能:根据DispatcherServlet发送的url请求路径查找Handler
  • 常见的处理器映射器:BeanNameUrlHandlerMapping,SimpleUrlHandlerMapping,
  • ControllerClassNameHandlerMapping,DefaultAnnotationHandlerMapping(不建议使用)
  • (3)处理器适配器HandlerAdapter(配置即可)功能:按照特定规则(HandlerAdapter要求的规则)去执行Handler。通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展多个适配器对更多类型的处理器进行执行。常见的处理器适配器:HttpRequestHandlerAdapter,SimpleControllerHandlerAdapter,AnnotationMethodHandlerAdapter
  • (4)处理器Handler即Controller(程序猿编写)功能:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。
  • (5)视图解析器ViewResolver(配置即可)功能:进行视图解析,根据逻辑视图名解析成真正的视图。ViewResolver负责将处理结果生成View视图,ViewResolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。springmvc框架提供了多种View视图类型,如:jstlView、freemarkerView、pdfView...
  • (6)视图View(程序猿编写)View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)

  • 处理器映射器(配置多个处理器映射器可以共存)

功能:根据bean(自定义Controller)的name属性的url去寻找执行类Controller。

  • 处理器适配器(配置多个处理器适配器可以共存)

功能:自定义的处理器(Controller)实现了Controller接口时,适配器就会执行Controller的具体方法。

展开阅读全文
打赏
1
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部