理解MVC架构模式,SpringMVC原理、执行流程图解

理解MVC架构模式,SpringMVC原理、执行流程图解,第1张

理解MVC架构模式,SpringMVC原理、执行流程图解 1、MVC架构模式
  • 说起SpringMVC就不得不说MVC,MVC是一种经典架构模式。MVC架构模式的重点是为了解耦,将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强,很多应用程序的问题在于处理业务数据和显示业务数据的视图的对象之间存在紧密耦合。
  • 有一句很有名的话:一个层次的重定向几乎可以解决计算机业务中的所有问题。在模型(Model)和视图层(View)之间引入重定向层可以解决解耦问题,这个重定向层就是控制层(Controller)。这样模型和视图就实现了代码分离,解耦了,由控制层来决定哪个模型来处理,哪个视图显示。
    MVC(Model-View-Controller)三元组的概念:
  • Model(模型):
    数据模型,提供要展示的数据,包括数据和行为,可以理解为JAVA POJO或JavaBean组件;
  • View(视图):
    进行模型数据的展示,用户看到的和交互的界面;
  • Controller(控制器):
    控制器作用于模型和视图之上,接收用户请求,委托给模型进行处理,控制数据流向模型对象,把返回的模型数据给视图,其实就是接收请求并决定调用哪个模型去处理请求,然后再确定用哪个视图来显示返回的数据;
  • 传统MVC图解:
2、SpringMVC

SpringMVC是Spring框架中的一个组件,实现了MVC架构模式的核心概念,是一种请求驱动类型的轻量级web框架,使用了MVC的核心概念,对web层进行职责解耦,简化了web开发;
SpringMVC是围绕DispatcherServlet而设计的,DispatcherServlet给处理程序分派请求,执行视图解析,并且处理语言环境和主题解析,对上传文件提供支持;
DispatcherServlet通过使用处理程序映射来决定哪一个处理程序来处理传入的请求,处理程序映射只是用于标识使用哪一个处理程序来处理特定的URL模式的映射。

3、SpringMVC的优势

1、清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
2、和Spring 其他框架无缝集成,是其它Web框架所不具备的;
3、可适配,通过HandlerAdapter可以支持任意的类作为处理器;
4、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;
5、功能强大的数据验证、格式化、绑定机制;
6、强大的JSP标签库,使JSP编写更容易。
7、RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。

4、SpringMVC执行流程

1、用户发送请求----->DispatcherServlet,DispatcherServlet(前端控制器)接收到请求后委托给其他解析器进行处理,作为统一访问点,进行全局流程控制;
2、DispatcherServlet---->请求获取HandlerMapping,HandlerMapping(处理器映射器)把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器对象);
3、DispatcherServlet---->请求执行HandlerAdapter,HandlerAdapter(处理器适配器)会把处理器包装为适配器,从而支持多种类型的处理器;
4、HandlerAdapter---->执行handler,HandlerAdapter会根据适配结果调用真正的处理方法完成处理(业务逻辑),然后返回ModelAndView(包含数据,逻辑视图名);
5、ModelAndView---->ViewResolve根据逻辑视图名解析为具体的View;
6、View---->进行视图渲染,View会根据传进来的Model数据进行渲染;
7、返回控制权给DispatcherServlet,由DispatcherServlet响应给用户;

  • SpringMVC图解:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5671665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存