Bili-Docs
技术工具编程开发

我不允许有人还不知道spring、springmvc、springboot的区别?讲得最通透的一次!

视频详细解析了Java后端核心框架Spring、SpringMVC与SpringBoot的概念区别,涵盖IOC、AOP及Web请求处理机制。

UP主: ai大模型工程师 · 时长: 6:24 · 🔗 B站原视频

发布: 2024-05-26 · 收录: 2025-04-08

标签: Spring · Java后端 · SpringBoot · 面试技巧 · 编程基础

这道题怎么区分:先搞清概念

Spring、SpringMVC、SpringBoot 这三者的区别,关键在于把概念弄清楚:Spring 是什么,SpringMVC 是什么,SpringBoot 又是什么。概念清楚了,区别自然就出来了。

Spring:IOC 容器 + AOP 机制

我认为 Spring 本质上就是一个 IOC 容器,用来管理 Bean。

它通过依赖注入实现控制反转,让程序降低耦合,也方便整合各种框架,比如 MyBatis、Redis、ES 等。实际整合用到的核心就是它的依赖注入方式,也就是 IOC。

Spring 还提供了 AOP 机制,用来弥补面向对象在“代码重复”这块的问题。比如日志、异常这类功能,在面向对象里你会发现每个类、每个对象都要处理日志、处理异常,这样写会产生大量冗余。

用 AOP 的话,就可以把这些共同的处理逻辑抽成一个切面,然后自动注入到方法执行过程中。这样我们实现业务类和业务方法时,就不需要再关注日志、异常这些横切逻辑了,这就是面向切面编程。它是面向对象的一种补充。

SpringMVC:Spring 里的 Web 框架(处理 HTTP 请求)

SpringMVC 可以认为是 Spring 的一部分,是 Spring 对 Web 场景(外部请求处理)提供的一套解决方案。

它的作用是帮助我们接收 HTTP 请求:比如 Web 容器(Tomcat)解析完 HTTP 请求后,SpringMVC 负责接收请求、解析参数、处理请求。

SpringMVC 的核心是一个总的前端控制器 DispatcherServlet,用来统一接收请求;同时它定义了一整套路由策略,也就是 URL 到 handler(处理器)的映射;还定义了一系列适配器,用来执行 handler。

最后,SpringMVC 会把处理器返回的结果,通过一定的视图技术解析成视图,展示给前端。

SpringBoot:Spring + SpringMVC 的快速开发工具包

SpringBoot 的核心可以理解为 Spring + SpringMVC,它是 Spring 家族提供的一套快速开发工具包,让我们更方便、更快地开发 Spring + SpringMVC 应用。

SpringBoot 本身并没有“新增什么很新的功能”,Spring 和 SpringMVC 的能力都没变,变的是使用方式更简单。原因在于它强调“约定大于配置”,也就是能用默认配置就用默认配置;如果你不想用默认配置,再自己去配。

所以 SpringBoot 也有配置,只是简化了配置。

另一个好处是它整合了一系列解决方案,也就是 starter 机制。比如你在 Spring + SpringMVC 里要用 MyBatis、Redis,通常需要自己在配置文件(XML 或者用 @Bean 的方式)把相关 Bean 配好才能用。

SpringBoot 提供 starter 后,你把对应的 starter 依赖引入进来,原来那些 Bean 配置很多就不需要自己做了,可以开箱即用,开发效率更高、更简洁。

总结:三者区别怎么记

SpringMVC 和 Spring 的区别:SpringMVC 是 Web 框架,是 Spring 的一部分。

SpringBoot 和前两者的区别:主要是“使用角度”的区别。SpringBoot 让 Spring + SpringMVC 的开发和整合变得更简单(约定大于配置 + starter 整合)。

On this page