spring boot 和 spring MVC 有什么区别
2026/7/7 17:59:18 网站建设 项目流程

一、谁用得更多?(2026 企业现状)

新项目 100% 用 Spring Boot;传统纯 Spring MVC 仅存量老系统维护

  1. 行业数据:79% 企业正在使用 Spring Boot,Java 后端市场份额接近 30%,纯原生 Spring MVC 仅 6.6%;
  2. 国内现状:
  • 微服务、云原生、前后端分离接口项目:全部 Spring Boot(底层自带 Spring MVC);
  • 只有十几年前遗留的 SSM(Spring+SpringMVC+MyBatis)老系统,才会纯手动写 Spring MVC;
  • 关键误区:Spring Boot 没有替代 Spring MVC,它只是封装、自动集成了 Spring MVC

你写 spring-boot-starter-web,底层就是 Spring MVC 在处理 HTTP 请求。

二、核心定位:完全不是一个层级的东西

Spring MVC

Spring Framework 自带的Web 层模块,只负责处理 HTTP 请求、MVC 分层、接口 / 页面渲染。

  • 单独使用必须搭配 Spring 核心容器;
  • 只解决「Web 请求」这一件事。

Spring Boot

Spring 生态的快速开发脚手架,用来简化整套 Spring 全家桶(Spring MVC、Spring Data、Security 等)的配置,本身不替代任何组件

核心三大能力:Starter 起步依赖、自动配置、内嵌 Tomcat/Jetty 容器。

三、详细区别对比

对比维度

Spring MVC(传统 SSM)

Spring Boot(主流)

依赖关系

单独模块,需手动引入 spring-webmvc、tomcat、json 等一堆 jar,自己管控版本

引入 spring-boot-starter-web 一行,自动集成 Spring MVC + Tomcat + 序列化全套,官方统一版本,无版本冲突

配置方式

配置地狱:必须写 web.xml、Spring xml 配置、MVC 配置类,手动注册 DispatcherServlet、视图解析器、跨域、消息转换器等

约定大于配置,绝大多数 Web 组件自动装配;仅少量业务配置写 application.yml

服务器部署

无内置容器,打包成 WAR,上传外部独立 Tomcat 服务器运行

内置 Tomcat,打包成可执行 Jar,java -jar 直接启动,适配 Docker、云服务器

开发效率

极低,新建项目光配置要大半天

极高,5 分钟搭建完整 Web 接口项目

生产监控

无内置监控,需自己整合监控组件

自带 Actuator 监控端点,健康检查、日志、线程池、接口统计开箱即用

微服务适配

不适合,部署繁琐、配置复杂

微服务标准基础框架,完美兼容 Nacos、Dubbo、Gateway 等中间件

代码书写

Controller 写法和 Boot 完全一样(@RequestMapping/@RestController 通用)

Controller 代码和原生 MVC 无差别,只是省去大量前置配置

适用场景

老旧遗留系统维护、需要极致底层定制、政府老旧项目

所有新项目:单体、微服务、接口服务、云原生容器项目

四、举个直观例子

1. 传统 Spring MVC 开发 Web 接口步骤

  1. 新建 Maven 项目,手动引入 spring-core、spring-webmvc、jackson、servlet-api、tomcat 依赖;
  2. 编写 web.xml,注册 DispatcherServlet;
  3. 新建 Spring MVC 配置类,开启注解扫描、配置消息转换器、跨域、静态资源;
  4. 外部单独装 Tomcat,配置服务器,打包 WAR 丢 webapps 文件夹;
  5. 最后才写 Controller 业务代码。

2. Spring Boot 开发 Web 接口步骤

  1. 引入依赖:spring-boot-starter-web;
  2. 写主启动类 @SpringBootApplication;
  3. 直接写 @RestController 接口;
  4. 运行 main 方法或 java -jar 启动,不需要任何服务器、Web 配置

五、学习路线建议

  1. 找工作重点学Spring Boot(市场刚需);
  2. 底层原理一定要懂 Spring MVC:

DispatcherServlet 执行流程、拦截器、异常处理器、参数绑定等,Boot 底层全靠它;

面试常问:Spring Boot 自动配置原理、Spring MVC 请求流程,两者结合考察。

六、一句话总结

  • Spring MVC = 处理网页 / 接口的「Web 工具」;
  • Spring Boot = 一键组装 Spring 全家桶的「开发工具箱」,工具箱里默认装好了 Spring MVC;
  • 现在行业新项目全部用 Boot,纯原生 MVC 只存在于十几年前的老系统。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询