Spring MVC 是什么?
想象你开了一家餐厅,顾客(用户)点菜、服务员传话、厨师做菜、最后服务员上菜。Spring MVC 就是规定这套流程的“餐厅管理规则”,专门用于处理网页请求(HTTP)和响应。
核心角色
- Model(厨师):处理数据(比如查数据库、计算逻辑)。
- View(摆盘):展示结果(比如 HTML 网页、JSON 数据)。
- Controller(服务员):接收用户请求,协调 Model 和 View。
工作流程
- 用户访问
/order
页面(点菜)。 - Controller 接收请求,调用 Model 处理(让厨师做菜)。
- Model 返回数据,Controller 交给 View 展示(服务员端菜上桌)。
Spring Boot 是什么?
Spring Boot 是 Spring 的“快速开店工具包”,它的目标是:让你用最少的配置,快速启动一个 Spring 应用(餐厅)。
Spring Boot 的魔法
- 自动配置:默认帮你配好 Spring MVC、数据库连接等基础设置(比如自动摆放桌椅、厨房设备)。
- 内嵌服务器:不用自己装 Tomcat,直接打包成可执行的 JAR 文件(餐厅自带厨房和厨师)。
- 起步依赖:一句话引入常用功能(比如
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,但不用操心配置! 🚀