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的条件注册的一套快速开发整合包。
相关推荐
222you9 分钟前
前后端分离项目在云服务器上的部署(Spring Boot + Vue)
运维·服务器·spring boot
Sunsets_Red12 分钟前
待修改莫队与普通莫队优化
java·c++·python·学习·算法·数学建模·c#
葡萄城技术团队16 分钟前
在 Java 中优化 MySQL 查询以提升性能
java·开发语言·mysql
杀死那个蝈坦19 分钟前
短链接生成-基于布隆过滤器和唯一索引
java·数据库·微服务·oracle·rocketmq
慕白Lee19 分钟前
Java foreach在lambda的foreach遍历中退出操作(lambda foreach break)
java
winfield82122 分钟前
Java 中大量闲置 MySQL 连接的解决方案(从根因到落地)
java·mysql
moxiaoran575325 分钟前
Java开发中VO的使用
java·开发语言
计算机毕设指导625 分钟前
基于微信小程序图像识别的智能垃圾分类系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·分类·maven
LJianK132 分钟前
前后端接口常见传参
java·spring
独自破碎E33 分钟前
消息队列如何保证消息的有效性?
java·开发语言·rocketmq·java-rocketmq