详解 Spring MVC(Spring MVC 简介)

什么是 Spring MVC?

Spring MVC 是 Spring 框架提供的一个基于 MVC 模式的轻量级 Web 框架,是 Spring 为表示层开发提供的一整套完整的解决方案,Spring MVC 使用了 MVC 架构模式,将 Web 层职责解耦,基于请求驱动模型,简化了 Web 应用程序的开发过程。

什么是 MVC?

MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范,是一种架构设计模式,MVC 模式降低了视图和与业务逻辑的耦合。

  • 模型(Model):数据模型,提供要展示的数据,包含数据的查询和组装。
  • 视图(View):负责进行模型的展示,就是我们通过界面可以看到的界面。
  • 控制器(Controller):接受用户请求,委托给模型处理,模型处理完数据返回给视图,由视图进行展示,控制器可以理解为一个控制中心、调度员的角色。

Spring MVC 的特点?

  • 轻量级、简单易学习,使开发人员能够快速开发出高质量的Web应用程序。
  • 可维护性,Spring MVC 框架采用了 MVC 设计模式,将模型、视图、控制器进行了分离,使得代码更加清晰、易于维护。
  • 灵活,Spring MVC 框架对于多种数据源和视图技术提供了支持,如JSP、Velocity、Freemarker等,可以让使用者灵活的选择技术方案。
  • 可扩展,Spring MVC 框架提供了很多扩展点,开发人员可以利用这些扩展点去扩展自己需要的功能,如可以自定义视图解析器、拦截器等。
  • 易于集成,Spring MVC 可以与 Spring 无缝集成,可以提升开发效率。
  • 灵活的URL映射,支持多种处理器映射方式,如基于注解的映射和基于URL映射的映射。
  • 单元测试,Spring MVC提供了强大的约定大于配置的契约式编程支持,以及简单的web层单元测试。
  • 支持国际化,可以根据用户区域显示多国语言。
  • 高效,Spring MVC 框架具有高效的处理请求和响应的能力。

Spring MVC 的核心组件?

  • DispatcherServlet(前端控制器):DispatcherServlet 是 Spring MVC 的核心,即是整个请求处理流程的入口,也贯穿这个流程,负责协调各个组件的工作,是一个中心控制器的作用。
  • HandlerMapping(处理器映射器):HandlerMapping 主要是将客户端的请求映射到具体的处理程序上,也就是帮助找到具体 Controller,一般会根据请求的 url 及类型,来找到具体的处理器。
  • HandlerAdapter(处理器适配器):HandlerAdapter 负责适配不同类型的处理程序,匹配到具体的 Handler。
  • Controller(控制器):Controller 负责处理客户端的请求并响应,它通常包含一些处理方法,这些处理方法被称为 Handler。
  • ModelAndView(模型和视图):ModelAndView 是一个持有模型数据和视图信息的容器对象,它将处理的模型数据和视图名称封装在一起传递给 DispatcherServlet。
  • ViewResolver(视图解析器):ViewResolver 负责将逻辑视图解析为具体的视图对象,并返回给 DispatcherServlet。
  • View(视图):它负责将模型数据渲染为最终结果,View 通常是一个 JSP 页面、FreeMarker 模板、Thymeleaf 模板或其他类型的模板文件,View 负责将模型数据填充到模板中,并生成最终的 HTML、XML、JSON 等格式的响应。

Spring MVC 的工作流程?

  • 客户端发送请求到前端控制器 DispatcherServlet。
  • 前端控制器 DispatcherServlet 收到请求后,寻找处理器映射器 HandlerMapping 处理。
  • 处理器映射器 HandlerMapping 根据请求 url 找到具体的处理器 Handler,生成处理器映射器对象及处理器拦截器一并返回给前端控制器 DispatcherServlet。
  • 前端控制器 DispatcherServlet 调用处理器适配器 HandlerAdapter,处理器适配器 HandlerAdapter 经过适配调用具体的处理器 Handler(Controller)。
  • Controller 调用 Service 完成业务逻辑处理,返回 ModelAndView。
  • DispatcherServlet 将 ModelAndView 传递给 ViewReslover。
  • ViewReslover 解析出具体的 View。
  • DispatcherServlet 根据具体的 View 渲染视图并返回给客户端。

Spring MVC 工作流程简图

在这里插入图片描述
简单的画了一个 Spring MVC 的工作流程,希望可以加深记忆。

欢迎提出建议及对错误的地方指出纠正。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC 是一种基于 Java 的开发框架,用于构建 Web 应用程序。它是 Spring 框架的一部分,提供了一种模型-视图-控制器(MVC)的架构模式,帮助开发人员将应用程序的不同方面进行解耦。 在 Spring MVC 中,应用程序的请求由 DispatcherServlet 接收并将其路由到适当的处理程序(也称为控制器)。控制器处理请求并生成模型数据,然后选择适当的视图来呈现这些模型数据给用户。 以下是 Spring MVC 的一些重要组件和概念: 1. DispatcherServlet:是整个 Spring MVC 的中央调度器,负责接收请求并将其分派给相应的处理程序。 2. 控制器(Controller):处理请求的组件,根据请求的类型和内容执行逻辑处理,并生成模型数据。 3. 模型(Model):表示应用程序的数据和状态。控制器可以通过模型对象来设置和获取数据,并将其传递给视图进行呈现。 4. 视图(View):负责将模型数据呈现给用户。可以是 JSP、Thymeleaf 或其他模板引擎。 5. 处理器映射器(Handler Mapping):将请求映射到相应的处理程序(控制器)。它根据配置文件或注解来确定请求与处理程序之间的映射关系。 6. 视图解析器(View Resolver):根据视图名称解析出实际的视图对象,它将逻辑视图名转换为物理视图。 7. 拦截器(Interceptor):在请求处理的过程中,可以对请求进行预处理和后处理。可以用于身份验证、日志记录等功能。 8. 数据绑定(Data Binding):自动将请求参数绑定到控制器方法的参数或模型对象的属性上。 9. 校验器(Validator):用于验证模型对象的数据的有效性。 Spring MVC 提供了灵活且强大的功能,使开发人员能够轻松构建可扩展和可维护的 Web 应用程序。它还支持 RESTful Web 服务和国际化等功能。通过良好的设计和组织,Spring MVC 可以实现松耦合、可测试和可扩展的应用程序架构。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值