本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net
引言
近期在做系统重构的项目工作,在跟开发沟通对接过程中,经常听到他们讲开发框架: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 技术的支持能力。