前面几篇介绍了Spring的学习流程,暂不对Spring进行源码分析,这里咱们开个新的,SSM中的Spring+MyBatis已经完结了,从这篇开始,咱们开始研究Spring MVC,笔者目前是一个一年的开发者,写博客是2024年工作实在太难找了,所需要的东西和八股文太多了,现在动不动就是源码啥的,一方面防止自己忘记太多东西了,另一方面,温故而知新,希望通过写博客来提高自己对框架的进一步理解。

Spring MVC

什么是MVC?

在正式了解SpringMVC之前,咱们先回答一个问题,那就什么是MVC?

MVC 是“模型-视图-控制器”(Model-View-Controller)的缩写,是一种软件架构模式,广泛用于开发用户界面。MVC 模式将应用程序分为三个主要组件,以实现关注点分离,从而提高代码的可维护性和可扩展性。

Model (模型)

模型是应用程序的核心部分,负责管理数据和业务逻辑。它代表了应用程序的状态,并提供对数据的访问和操作。模型通常包括:

  • 数据结构:定义应用程序的数据格式。
  • 业务逻辑:处理数据的操作和规则。
  • 数据持久化:与数据库或其他存储系统交互,进行数据的存取。

View (视图)

视图是用户界面的表现层,负责将模型的数据以可视化的方式呈现给用户。视图的主要职责包括:

  • 显示数据:从模型获取数据并以用户友好的方式展示。
  • 用户界面:定义用户与应用程序交互的界面元素,如按钮、文本框等。
  • 更新显示:在模型数据发生变化时,更新视图以反映最新状态。

Controller(控制器)

控制器是模型和视图之间的中介,负责处理用户输入并更新模型和视图。控制器的主要职责包括:

  • 接收输入:处理用户的输入(如点击按钮、提交表单等)。
  • 更新模型:根据用户的操作更新模型的状态。
  • 更新视图:在模型状态变化后,通知视图进行更新。

工作流程

MVC的工作流程: 用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器

MVC的优点:

  • 关注点分离:将数据、用户界面和业务逻辑分开,使得代码更易于管理和维护。
  • 可重用性:模型和视图可以独立开发和测试,增加了代码的重用性。
  • 灵活性:可以在不影响其他组件的情况下,独立修改或替换某个组件。

什么是Spring MVC?

Spring MVC 是一个基于 Java 的 Web 框架,是 Spring Framework 的一部分,专门用于构建 Web 应用程序。它实现了 MVC(模型-视图-控制器)设计模式,提供了一种灵活的方式来处理 HTTP 请求和响应。

说白了,我们还是在Spring的基础上,只不过Spring MVC更加面向Web罢了。

Spring MVC 的主要特点

  1. 请求处理:Spring MVC 使用控制器(Controller)来处理用户请求。控制器根据请求的 URL 映射到相应的处理方法,并返回模型数据和视图信息。
  2. 灵活的视图解析:Spring MVC 支持多种视图技术(如 JSP、Thymeleaf、Freemarker 等),通过视图解析器将模型数据渲染到视图中。
  3. 数据绑定:Spring MVC 提供了强大的数据绑定功能,可以将请求参数自动绑定到 Java 对象中,简化了表单处理。
  4. 注解支持:Spring MVC 支持使用注解(如 @Controller、@RequestMapping、@GetMapping 等)来简化配置和请求映射。
  5. 拦截器:Spring MVC 允许使用拦截器(HandlerInterceptor)在请求处理的不同阶段进行处理,如权限检查、日志记录等。
  6. RESTful 支持:Spring MVC 提供了对 RESTful 风格的支持,可以方便地构建 RESTful API。

Spring MVC 与 MVC 的区别

  1. 框架 vs. 设计模式:
  • MVC 是一种设计模式,定义了如何将应用程序的不同部分(模型、视图和控制器)分开,以实现关注点分离。
  • Spring MVC 是一个具体的实现框架,基于 MVC 设计模式,提供了处理 Web 应用程序的工具和功能。
  1. 功能范围:
  • MVC 作为设计模式,主要关注于如何组织代码结构。
  • Spring MVC 提供了丰富的功能,如请求处理、视图解析、数据绑定、拦截器等,帮助开发者快速构建 Web 应用。
  1. 技术栈:
  • MVC 可以在多种编程语言和框架中实现(如 Ruby on Rails、ASP.NET MVC 等)。
  • Spring MVC 是 Java 生态系统中的一个框架,专门为 Java 开发者设计。
  1. 配置方式:
  • MVC 作为一种模式,不涉及具体的配置方式。
  • Spring MVC 提供了多种配置方式,包括 XML 配置和基于注解的配置,使得开发者可以灵活选择。

SpringMVC 的特点

  • Spring 家族原生产品,与 IOC 容器等基础设施无缝对接
  • 基于原生的Servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理
  • 表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案
  • 代码清新简洁,大幅度提升开发效率
  • 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可
  • 性能卓著,尤其适合现代大型、超大型互联网项目要求