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的条件注册的一套快速开发整合包。
相关推荐
悟能不能悟6 分钟前
java HttpServletRequest 设置header
java·开发语言
悟空码字12 分钟前
SpringBoot整合FFmpeg,打造你的专属视频处理工厂
java·spring boot·后端
独自归家的兔14 分钟前
Spring Boot 版本怎么选?2/3/4 深度对比 + 迁移避坑指南(含 Java 8→21 适配要点)
java·spring boot·后端
技术狂人16817 分钟前
(七)大模型工程落地与部署 10 题!vLLM/QPS 优化 / 高可用,面试实战必备(工程篇)
人工智能·深度学习·面试·职场和发展·vllm
trayvontang23 分钟前
Spring Gateway核心概念、流程及原理
spring·gateway·spring gateway
郝学胜-神的一滴23 分钟前
线程同步:并行世界的秩序守护者
java·linux·开发语言·c++·程序人生
_loehuang_33 分钟前
【mole】Mole User 开源用户中心:一站式身份认证与权限管理解决方案
spring boot·nacos·开源·用户中心·mole
掉鱼的猫44 分钟前
灵动如画 —— 初识 Solon Graph Fluent API 编排
java·openai·workflow
周杰伦fans1 小时前
AndroidStudioJava国内镜像地址gradle
android·java·android-studio