当前位置:首页 > Java技术 > SpringMvc架构流程

SpringMvc架构流程

2022年11月09日 10:49:54Java技术15

最近学完了mybtis,然后开始学习SpringMvc和mybatis的整合,所以先熟悉一下SpringMvc架构流程。

这是SpringMvc架构的流程图
(图片来自于网络,DispatcherServlet那里翻译成中央处理器和前端处理器都可以,我们这里使用的前端处理器)
SpringMvc架构流程 _ JavaClub全栈架构师技术笔记

可以总结说有一个中心和三个大件:
前端控制器是流程控制的中心;三个大组件分别是处理器映射器、处理器适配器和视图解析器。

下面我按照流程图的顺序说明架构流程:

  1. 用户发送请求给前端控制器
  2. 前端处理器收到用户请求以后调用处理器映射器
  3. 处理器映射器根据请求的url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成,没有就不生成)一并返回给前端控制器;
  4. 前端控制器通过处理器适配器调用处理器;
  5. 执行处理器(Controller,后端控制器);
  6. 处理器执行完成返回ModelAndView
  7. 处理器适配器将处理器的执行结果ModelAndView返回给前端处理器;
  8. 前端处理器将ModelAndView传给视图解析器
  9. 视图解析器解析后返回具体View;
  10. 前端处理器对View进行渲染视图(其实就是将模型数据填充到视图中);
  11. 前端处理器响应用户。

框图中的组件详细说明:

  1. DispatcherServlet:前端控制器
    用户请求到达前端控制器,它就相当于mvc模式中的controller,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。每个组件都通过前端控制器与其他组件进行交互。
  2. HandlerMapping:处理器映射器
    HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:实现接口方式,注解方式等。(个人觉得注解方式较为方便)
  3. Handler:处理器(开发)
    Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。
    handler需要处理用户的具体请求,所以需要我们进行开发它。
  4. HandlAdapter:处理器适配器
    通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
  5. View Resolver:视图解析器
    View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
  6. View:视图(开发)
    springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。
    一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

相关细节补充:
(1)用户的请求离开浏览器来到前端控制器的时候,会带有用户所请求的内容,至少会包含用户请求的URL,这也是第三步,处理映射器找具体处理器的根据的url的来源。

作者:珍惜时间简单生活
来源链接:https://blog.csdn.net/FateRuler/article/details/80793241

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68773.html

标签: SpringMVCSpring
分享给朋友: