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技术的支持能力。
相关推荐
大名顶顶4 分钟前
【JAVA实战】如何使用 Apache POI 在 Java 中写入 Excel 文件
java·spring boot·后端·计算机·程序员·编程·软件开发
牛马程序员‍6 分钟前
Day99 Gitub、系统分层架构
git·架构·mvc·ddd架构·gitub
Future_yzx1 小时前
基于SpringBoot+WebSocket的前后端连接,并接入文心一言大模型API
spring boot·websocket·文心一言
bing_1584 小时前
Redis 的缓存穿透、缓存击穿和缓存雪崩是什么?如何解决?
redis·spring·缓存
花心蝴蝶.5 小时前
Spring MVC 综合案例
java·后端·spring
落霞的思绪5 小时前
Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)
数据库·spring boot·redis·后端·缓存
java冯坚持5 小时前
shiro学习五:使用springboot整合shiro。在前面学习四的基础上,增加shiro的缓存机制,源码讲解:认证缓存、授权缓存。
spring boot·学习·缓存
customer0813 小时前
【开源免费】基于SpringBoot+Vue.JS校园失物招领系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
中國移动丶移不动13 小时前
Java 反射与动态代理:实践中的应用与陷阱
java·spring boot·后端·spring·mybatis·hibernate
码农小灰15 小时前
Spring MVC 中的 DispatcherServlet:工作流程与应用场景解析
java·spring·mvc