Spring、SpringMVC、Springboot三者的区别和联系

1.背景

最近有人问面试的一个问题:Spring、SpringMVC、Springboot三者的区别和联系,个人觉得:万变不离其宗,只需要理解其原理,回答问题信手拈来。

2.三者区别和联系

2.1 先了解Spring基础

Spring 框架就像一个家族,有众多衍生产品,例如 boot、security、jpa等等。但他们的基础都是Spring的Ioc和Aop ,Ioc 提供了依赖注入 的容器,Aop解决了面向切面 的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。

2.2 三者的演进关系

Spring 最初利用"工厂模式 "(DI)和"代理模式 "(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC框架 (一些用Spring 解耦的组件),用于开发 web 应用( SpringMVC )。然后发现每次开发都要写很多样板代码,为了简化工作流程,于是开发出了一些"懒人整合包 "(starter),这套整合包就是 Spring Boot

2.3 三者的区别

  • Spring 是一个"引擎";
  • Spring MVC 是基于Spring的一个 MVC 框架;
  • Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。
相关推荐
青石路7 分钟前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
kyriewen35 分钟前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
她的男孩2 小时前
后台接口加密别只会 HTTPS,ForgeAdmin 的 RSA + SM4/AES 源码拆解
后端·面试·开源
Java陈序员2 小时前
企业级!一个基于 Java 开发的开源 AI 应用开发平台!
spring boot·agent·mcp
Randyliu3 小时前
20260508-Agent搭建记录以及对ReAct框架的理解
面试·agent
像我这样帅的人丶你还3 小时前
Java 后端详解(五):Redis 缓存
java·后端·全栈
ZzT4 小时前
公司用 AI 筛简历,他写了个 AI 帮你挑公司
面试·aigc·ai编程
PBitW4 小时前
GPT训练我的第四天,被打惨了!!!😭😭😭
前端·javascript·面试
plainGeekDev5 小时前
GreenDAO → Room
android·java·kotlin
云技纵横9 小时前
@Transactional 到底要不要加 rollbackFor?一次数据不一致事故讲清楚
后端·面试