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的条件注册的一套快速开发整合包。
相关推荐
niucloud-admin几秒前
java服务端——controller控制器
java·开发语言
To Be Clean Coder1 分钟前
【Spring源码】通过 Bean 工厂获取 Bean 的过程
java·后端·spring
Fortunate Chen8 分钟前
类与对象(下)
java·javascript·jvm
程序员水自流9 分钟前
【AI大模型第9集】Function Calling,让AI大模型连接外部世界
java·人工智能·llm
‿hhh12 分钟前
综合交通运行协调与应急指挥平台项目说明
java·ajax·npm·json·需求分析·个人开发·规格说明书
小徐Chao努力12 分钟前
【Langchain4j-Java AI开发】06-工具与函数调用
java·人工智能·python
无心水15 分钟前
【神经风格迁移:全链路压测】33、全链路监控与性能优化最佳实践:Java+Python+AI系统稳定性保障的终极武器
java·python·性能优化
萧曵 丶23 分钟前
Synchronized 详解及 JDK 版本优化
java·多线程·synchronized
夏幻灵38 分钟前
JAVA基础:基本数据类型和引用数据类型
java·开发语言
weixin1997010801644 分钟前
闲鱼 item_get - 商品详情接口对接全攻略:从入门到精通
java·后端·spring