我不允许有人还不知道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 整合)。