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,但不用操心配置! 🚀

相关推荐
学c真好玩5 分钟前
Spring
java·后端·spring
孤寂大仙v1 小时前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
ianozo1 小时前
数据结构--【栈与队列】笔记
数据结构·笔记
钢板兽2 小时前
Java后端高频面经——Spring、SpringBoot、MyBatis
java·开发语言·spring boot·spring·面试·mybatis
极客BIM工作室2 小时前
机器学校的考试风波:误差分析、过拟合和欠拟合
笔记·机器学习
flashier2 小时前
C语言 进阶指针学习笔记
c语言·笔记·学习
大白的编程日记.3 小时前
【Linux学习笔记】Linux基本指令分析和权限的概念
linux·笔记·学习
螺旋式上升abc3 小时前
GO语言学习笔记
笔记·学习·golang
Y_3_73 小时前
RabbitMQ应用问题大全(精心整理版)
分布式·spring·microsoft·rabbitmq
W起名有点难3 小时前
前端学习——CSS
前端·css·学习