SpringMVC 学习(一)之 SpringMVC 介绍

目录

1 MVC 介绍

2 SpringMVC 介绍

2.1 SpringMVC 特点

2.2 SpringMVC 的核心组件

2.3 SpringMVC 执行流程

3 参考文档


1 MVC 介绍

        MVC (Model View Controller) 是一种设计思想,它将应用程序分为三大组件:模型 (Model)、视图 (View)、控制器 (Controller)。

  • 模型 (Model):模型是应用程序的数据和业务逻辑部分。它负责处理和管理应用程序的数据,并执行与数据相关的操作,例如读取、写入、修改和删除数据

  • 视图 (View):视图是应用程序的用户界面部分。它负责呈现模型中的数据给用户,并接受用户的输入。视图通常使用 HTML、CSS 和 JavaScript 等前端技术来构建

  • 控制器 (Controller):控制器是应用程序的控制逻辑部分。它负责处理用户的请求和操作,并协调模型和视图之间的交互。它接收从视图层传来的数据,然后选择 Model 层中的某个业务来处理,之后接收 Model 层返回的结果并选择视图层中的某个视图来显示结果

        在实际的开发中,我们会把它们拆分的更细,从而形成 Entity+DTO+DAO+Service+Controller+HTML 结构,其中 Entity+DTO+DAO+Service 为模型层,Controller 为控制器层,HTML 为视图层。

类型名称作用
Entity实体类通常与数据库的表对应,封装 DAO 层取出来的数据为一个对象,也就是我们常说的POJO,一般只在 DAO 层与 Service 层之间传输
DAO数据访问层作用是与数据打交道,可以是数据库操作,也可以是文件读写操作,甚至是 Redis 缓存操作,总之与数据操作有关的都放在这里
DTO数据传输层主要用于远程调用等需要大量传输对象的地方
Service业务逻辑层业务逻辑层用于调用 DAO 层进行数据操作,并处理业务逻辑,如拼接 SQL,处理事务等
Controller控制器层接收从视图层传过来的数据,然后选择 Service 层中的某个业务来处理,接收 Service 层返回的结果并选择视图层中的某个视图来显示结果

2 SpringMVC 介绍

        SpringMVC 是 Spring 的一个后续产品,是 Spring 为表述层开发提供的一整套完备的解决方案。SpringMVC 是 Spring + MVC,即 SpringMVC 是实现了 MVC 设计模式的 Spring 框架。

2.1 SpringMVC 特点

  1. 轻量级,简单易学,简洁灵活
  2. 高效,基于请求响应的 MVC 框架,底层封装了 Servlet
  3. 进行更简洁的 Web 层的开发
  4. 能简单的进行 Web 层的单元测试
  5. 与 Spring 兼容性好,天生与 Spring 框架集成(如 IoC 容器、AOP 等)
  6. 提供强大的约定大于配置的契约式编程支持
  7. 功能强大:支持 RESTful 风格、灵活的数据验证、灵活的本地化、格式化和数据绑定机制等
  8. 能使用任何对象进行数据绑定,不必实现特定框架的 API
  9. 对静态资源的支持
  10. 更加简单的异常处理
  11. 支持灵活的 URL 到页面控制器的映射
  12. 非常容易与其他视图技术集成,如 Thymeleaf、FreeMarker 等等,因为模型数据不放在特定的 API 里,而是放在一个 Model 里(Map 数据结构实现,因此很容易被其他框架使用)

2.2 SpringMVC 的核心组件

  • DispatcherServlet:中央调度器,也称前端控制器,在 MVC 设计模式中相当于 Controller,即控制层。它是整个流程的控制中心,由它调用其它组件处理用户的请求。中央调度器的存在降低了组件之间的耦合性,提高了系统的可扩展性
  • HandlerMapping:处理器映射器,负责根据用户请求 URL 找到要执行的 Handler,SpringMVC 提供了不同的映射器实现不同的映射方式
  • Handler:处理器,也称后端控制器,它负责处理具体的请求并返回相应的响应
  • HandlerAdapter:处理器适配器,通过 HandlerAdapter 对处理器进行执行,它是对适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行
  • ViewResolver:视图解析器,View Resolver 负责将处理结果生成 View 视图。ViewResolver 首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染并将处理结果通过页面展示给用户
  • View:视图,SpringMVC 框架提供了很多的 View 视图类型的支持,包括:JSP、JSTLView、FreeMarkerView 和 PDFView 等。一般需要我们根据业务需求开发具体的页面

2.3 SpringMVC 执行流程

具体的执行流程如下:

  1. 用户在浏览器提交请求给前端控制器 DispatcherServlet 进行处理
  2. 前端控制器 DispatcherServlet 收到请求后,将请求转给处理器映射器 HandlerMapping
  3. 处理器映射器 HandlerMapping 根据 request 请求的 URL 等信息查找能够进行处理的处理器 Handler,以及相关拦截器 Interceptor,并构造 HandlerExecutionChain 处理器执行链,然后将构造好的 HandlerExecutionChain 处理器执行链对象返回给前端控制器 DispatcherServlet,执行链包含一个处理器对象和一或多个拦截器
  4. 前端控制器 DispatcherServlet 根据处理器执行链,找到其对应的处理器适配器 HandlerAdapter
  5. 处理器适配器 HandlerAdapter 调用相应的处理器 Handler
  6. 处理器 Handler 处理完后返回 ModelAndView 给 HandlerAdapter(ModelAndView 表示 SpringMVC 的封装对象,将 Model 和 View 封装在一起)
  7. 处理器适配器 HandlerAdapter处理器 Handler 执行结果 ModelAndView 返回给前端控制器 DispatcherServlet
  8. 前端控制器 DispatcherServlet 调用视图解析器 ViewReslover 处理 ModelAndView 
  9. 视图解析器 ViewReslover 将逻辑视图名解析成物理视图名,即具体的页面地址,生成并返回具体对象 View(SpringMVC 封装对象,是一个接口)
  10. 前端控制器 DispatcherServlet 根据对象 View 进行视图渲染(即将模型数据 Model 填充至视图中)
  11. 最后,前端控制器 DispatcherServlet 向用户返回响应,至此就全部完成了

SpringMVC 学习(二)之第一个 SpringMVC 案例-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/zjs246813/article/details/136259136?spm=1001.2014.3001.5501

3 参考文档

SpringMVC入门学习(一)----Spring MVC的介绍与执行流程 - 唐浩荣 - 博客园 (cnblogs.com)

SpringMVC执行流程及源码分析 - 二七零零 - 博客园 (cnblogs.com)

  • 35
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值