Spring学习笔记04:spring mvc和Spring Boot之间是什么关系?

devtools/2025/3/5 9:44:14/

Spring MVC 是什么?

想象你开了一家餐厅,顾客(用户)点菜、服务员传话、厨师做菜、最后服务员上菜。Spring MVC 就是规定这套流程的“餐厅管理规则”,专门用于处理网页请求(HTTP)和响应。

核心角色
  1. Model(厨师):处理数据(比如查数据库、计算逻辑)。
  2. View(摆盘):展示结果(比如 HTML 网页、JSON 数据)。
  3. Controller(服务员):接收用户请求,协调 Model 和 View。
工作流程
  1. 用户访问 /order 页面(点菜)。
  2. Controller 接收请求,调用 Model 处理(让厨师做菜)。
  3. Model 返回数据,Controller 交给 View 展示(服务员端菜上桌)。

Spring Boot 是什么?

Spring Boot 是 Spring 的“快速开店工具包”,它的目标是:让你用最少的配置,快速启动一个 Spring 应用(餐厅)

Spring Boot 的魔法
  1. 自动配置:默认帮你配好 Spring MVC、数据库连接等基础设置(比如自动摆放桌椅、厨房设备)。
  2. 内嵌服务器:不用自己装 Tomcat,直接打包成可执行的 JAR 文件(餐厅自带厨房和厨师)。
  3. 起步依赖:一句话引入常用功能(比如 spring-boot-starter-web 包含 Spring MVC + Tomcat)。

Spring MVC 和 Spring Boot 的关系

1. Spring Boot 简化了 Spring MVC 的使用
  • 传统 Spring MVC:你需要手动配置一堆 XML 或 Java 代码(比如配 DispatcherServlet、视图解析器)。
  • Spring Boot + Spring MVC:只要添加 spring-boot-starter-web 依赖,Spring Boot 自动配置好 Spring MVC,你只需写业务代码。
2. 代码对比
  • 传统 Spring MVC 的配置:
    <!-- 手动配置 DispatcherServlet -->
    <servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc.xml</param-value></init-param>
    </servlet>
    
  • Spring Boot 中:无需配置,直接写 Controller:
    @RestController
    public class HelloController {@GetMapping("/hello")public String hello() {return "Hello, Spring Boot!"; // 自动处理请求和响应}
    }
    
3. 项目依赖关系
  • Spring Boot 像一个“大礼包”,内部已经整合了 Spring MVC 和其他常用模块(如 Spring Data、Spring Security)。
  • 当你用 Spring Boot 开发 Web 应用时,Spring MVC 是它的核心组件之一

总结

  • Spring MVC:是处理 Web 请求和响应的具体规则(像餐厅的服务流程)。
  • Spring Boot:是快速开店的工具包,内置了 Spring MVC 并帮你自动配置好一切。
  • 关系:Spring Boot 让 Spring MVC 的使用变得极其简单,就像“一键开店”!

类比总结

概念比喻核心作用
Spring MVC餐厅服务流程(点菜-做菜-上菜)处理 HTTP 请求和响应
Spring Boot快速开店工具包自动配置 Spring MVC 和其他基础设施

初学只需记住:用 Spring Boot 写 Web 应用,本质就是在用 Spring MVC,但不用操心配置! 🚀


http://www.ppmy.cn/devtools/164717.html

相关文章

Mayavi一个强大的python库

Mayavi 介绍 Mayavi 是一个用于 Python 的科学数据可视化库,提供了一种便捷的方式来创建复杂的 3D 可视化效果。它基于 VTK(Visualization Toolkit)构建,能够处理各种类型的数据,包括标量、矢量和张量数据,广泛应用于科学研究和数据分析领域。 主要特点 丰富的可视化选…

OCR PDF 文件是什么?它包含什么内容?

有些 PDF 文件是通过扫描纸质书页生成的&#xff0c;这类文件有其独特的特点。有时&#xff0c;原始书籍是唯一可用的版本&#xff0c;因此只能通过扫描的方式获取内容。 如何识别 OCR PDF 文件&#xff1f; 你通常可以从外观上辨别 OCR PDF 文件——页面上的文本看起来像“锯…

代码随想录|哈希表|09四数之和

leetcode:18. 四数之和 - 力扣&#xff08;LeetCode&#xff09; 题目 题意&#xff1a;给定一个包含 n 个整数的数组 nums 和一个目标值 target&#xff0c;判断 nums 中是否存在四个元素 a&#xff0c;b&#xff0c;c 和 d &#xff0c;使得 a b c d 的值与 target 相等…

什么是RPC,和HTTP有什么区别?

RPC是Remote ProcedureCall的缩写&#xff0c;译为远程过程调用。要想实现RPC通常需要包含传输协议和席列化协议的实现。 而我们熟知的HTTP&#xff0c;他的中文名叫超文本传输协议&#xff0c;所以他就是一种传输协议。所以&#xff0c;我们可以认为RPC和HTTP并不是同一个维度…

SQL(1)

概述&#xff1a;SQL&#xff0c;结构化的查询语言&#xff0c;集DDL&#xff0c;DML&#xff0c;DCL于一体。高度的非过程化&#xff0c;只需要提出做什么&#xff0c;无需涉及具体的操作细节。SQL功能性极强&#xff0c;完成核心功能只用了9个动词。 SQL功能动词数据查询SEL…

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型&#xff08;LLM&#xff09;本地化部署与管理工具&#xff0c;旨在简化在本地计算机上运行和管理大语言模型…

Vue前端开发- Vant之Card组件

业务组件是Vant的一大特点&#xff0c;特别是针对移动端商城开发的业务&#xff0c;有许多组件可以直接运用到通用商城的开发中&#xff0c;代码也十分简单&#xff0c;大大加快了应用的开发速度。 在众多的业务组件中&#xff0c;Card 卡片、Coupon 优惠券选择器和SubmitBar …

【MySQL】与MongoDB的区别,字符集,三范式,存储引擎InnoDB、MyISAM

MongoDB vs MySQL&#xff1a;区别与应用场景 1. 数据模型 MongoDB 非关系型&#xff08;NoSQL&#xff09;&#xff0c;存储的是 JSON 格式 的 文档&#xff08;Document&#xff09;。数据结构灵活&#xff0c;不要求每个文档有相同的字段&#xff0c;适合存储 动态变化的数…