Spring MVC、Spring Boot和Spring Cloud 三者区别和联系

引言

近期在做系统重构的项目工作,在跟开发沟通对接过程中,经常听到他们讲开发框架:Spring MVC、Spring Boot、Spring Cloud,故对这三者进行一些学习了解,下面我针对由来、作用与关联等方面,来总结一下我学习成果。

由来

Spring MVC、Spring boot、Spring Cloud都属于Spring框架的一部分,它们都是用来简化和加速Java应用程序开发的工具和框架,是不同阶段的技术手段的升级。
  Spring MVC最初是作为Spring框架的一个模块而引入的,用于构建基于MVC设计模式的Web应用程序。它在2003年Spring 1.0版本中首次亮相。
  Spring Boot起源于2012年by Pivotal团队的一个内部项目,目标是让Spring应用的创建、配置和部署变得简单。2014年4月发布了第一个版本。
  2014年底,Netflix演进分布式系统解决方案时开源了一系列组件(Eureka、Hystrix等),Spring Cloud应运而生,整合并扩展了这些模式,旨在简化分布式系统构建。2015年5月发布首个GA版本后,Spring Cloud迅速成为Java领域构建微服务的热门选择。开发者发现通过Spring Cloud可以较为简单地构建可靠、安全、协调的分布式系统。

作用与关联

关于Spring MVC、Spring boot、Spring Cloud的作用,可以通过这个例子来说明:Spring就像一座巨大的厂房,Spring MVC就是这个厂房里的一个重要车间。这个车间专门负责制造Web应用程序的骨架和肌肉部分。它为Web应用搭建好了基本框架,并提供了处理HTTP请求、渲染页面等核心功能;而Spring Boot就像这个厂房里的一个自动化机器,让制造Web应用变得更加高效,它为Spring提供了自动配置、内嵌服务器等一体化解决方案,使开发人员能够迅速启动并运行应用程序,而不必花太多精力在繁琐的配置上;Spring Cloud则是另一种产品,它是由多个微服务组装而成的一套分布式系统。如果把单个Web应用比作一件服装,那么Spring Cloud就是一个成衣加工厂,由许多不同的车间(服务)协同作业,一起生产出一套完整的服装系列,在这个服装生产的过程中,每个微服务就相当于车间里的一个工人或者机器,负责生产某个特定的部件或服务,而Spring Cloud则提供了很多工具和组件,协调各个工人合作无间,保证整个流程的工作效率和生产质量。
  关于Spring MVC、Spring boot、Spring Cloud的关联关系,可以这么理解:
  1. Spring Boot包含了Spring MVC,或者说Spring Boot项目内置了Spring MVC这个Web框架。Spring Boot对Spring MVC进行了自动配置,使开发者能够更高效便捷地构建基于Spring MVC的Web应用程序。
  2.Spring Cloud是构建在Spring Boot基础之上的,Spring Cloud的大多数项目都是以Spring Boot应用程序的形式存在的。 Spring Cloud利用了Spring Boot的自动配置特性,进一步实现了分布式系统中所需的各种组件的自动化配置和管理。
  3.Spring Cloud并不直接依赖或包含Spring MVC,但是由于Spring Cloud是基于Spring Boot构建的,而Spring Boot内置了Spring MVC框架,所以开发基于Spring Cloud的分布式Web应用程序时,通常也会基于Spring MVC来开发单体服务或微服务的Web层。

总的来说:

  • Spring MVC作为Web框架的核心,被包含在Spring Boot之中。
  • Spring Boot应用程序是Spring Cloud微服务的载体形式。
  • Spring Cloud通过集成Spring Boot,间接获得了对Spring MVC等其他Spring技术的支持能力。
相关推荐
心勤则明11 分钟前
Spring AI 文档ETL实战:集成text-embedding-v4 与 Milvus
人工智能·spring·etl
艾菜籽28 分钟前
Spring Web MVC入门补充1
java·后端·spring·mvc
ahauedu2 小时前
Spring Boot 2.7+ 中 RedisConnectionFactory Autowire 警告的深度解析
java·spring boot·后端
摇滚侠3 小时前
Spring Boot 3零基础教程,深度理解 Spring Boot 自动配置原理,笔记11
spring boot·笔记·后端
艾菜籽3 小时前
Spring MVC入门补充2
java·spring·mvc
爆更小哇3 小时前
统一功能处理
java·spring boot
风兮w4 小时前
MVC、MVP和MVVM的区别
mvc
为java加瓦6 小时前
Spring 方法注入机制深度解析:Lookup与Replace Method原理与应用
java·数据库·spring
无名客06 小时前
SpringCloud中的网关(Gateway)的作用是什么?
spring·spring cloud·gateway
hweiyu007 小时前
Spring Boot 项目集成 Gradle:构建、测试、打包全流程教程
java·spring boot·后端·gradle