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

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 的配置:

    xml 复制代码
    <!-- 手动配置 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:

    java 复制代码
    @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,但不用操心配置! 🚀

相关推荐
智者知已应修善业2 小时前
【4060BD_5V应用电路图】2022-12-24
驱动开发·经验分享·笔记·硬件架构·硬件工程
小弥儿2 小时前
GitHub今日热榜 | 2026-09-18:腾讯双项目上榜
学习·开源
知识分享小能手4 小时前
深度学习学习教程,从入门到精通,深度生成模型 —— 知识点详解与代码实现(20)
人工智能·深度学习·学习
杨杨杨大侠4 小时前
RAG 到底是怎么工作的?从用户提问到模型回答的完整链路
spring·openai·ai编程
Joy T5 小时前
Spring AI 2.0 Agent 进阶:Memory、State 与 Context Engineering 常见技术全景
java·人工智能·后端·spring·agent入门·agent state
m4Rk_5 小时前
【论文阅读】Agent 记忆机制(74):CompassMem——从相似度检索走向事件图上的记忆导航
论文阅读·人工智能·学习·开源·github
小李不想当小白5 小时前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
2601_949950637 小时前
练题簿在线练题全流程:从资料导入到模拟考试与错题复盘
学习·考研·小程序·刷题·小程序推荐
2601_965384267 小时前
口腔黏膜清洁的工程化路径:从表面形貌表征到清洁策略匹配
经验分享·笔记
wno7047 小时前
Spring Security短信验证码登录
java·python·spring