万字详解,Spring Boot和 Spring Cloud 的关系

要了解 Spring Boot 的发展背景,还得从 2004 年 Spring Framework1.0 版本发布开始说起,不过大家都是从开始学习 Java 就使用 Spring Framework 了,所以就不做过多展开。

随着使用 Spring Framework 进行开发的企业和个人越来越多,Spring 也慢慢从一个单一简洁的小框架编程了一个大而全的开源软件,Spring Framework 的边界不断进行扩张,到了现在 Spring 几乎可以做任何事情。目前市面上绝大部分的开源组件和中间件,都有 Spring 对应组件的支持,

你们如果去关注 Spring 目前的官网,你会发现他的 slogan 是:Spring makes Java Simple。它让 Java 的开发变得更加简单。

虽然 Spring 的组件代码是轻量级的,但是它的配置却是重量级的,Spring 每集成一个开源软件,就需要增加一些基础配置,慢慢的随着我们开发的项目越来越庞大,往往需要集成很多开源软件,因此后期使用 Spirng 开发大型项目需要引入很多配置文件,太多的配置非常难以理解,并容易配置出错,这个给开发人员带来了不少的负担。

大家想象一个场景,就是假如你需要用 spring 开发一个简单的 Hello World Web 应用程序,应该要做哪些动作呢?

  • 创建一个项目结构,必然包含依赖 Maven 或者 Gradle 的构建文件。
  • 至少需要添加 spring mvc 和 servlet api 的依赖
  • 一个 web.xml,声明 spring 的 DispatcherServlet
  • 一个启用了 Spring MVC 的 spring 配置
  • 一个控制器类,“以 HelloWord”为响应的 http 请求
  • 一个用于部署应用程序的 web 应用服务器,比如 Tomcat

在整个过程中,我们发现只有一个东西和 Hello Word 功能相关,那就是控制器(controller),剩下的都是 Spring 开发的 Web 应用程序必须要的通用模版,既然所有 Spring Web 应用程序都要用到他们,那为什么还要你来提供这些东西呢?

所以,直到 2012 年 10 月份,一个叫 Mike Youngstrom(扬斯特罗姆)在 Spring Jira 中创建了一个功能请求,要求在 Spring Framework 中支持无容器 Web 应用程序体系结构,他谈到了在主容器引导 spring 容器内配置 Web 容器服务。

I think that Spring's web application architecture can be significantly simplified if it were to provided tools and a reference architecture that leveraged the Spring component and configuration model from top to bottom. Embedding and unifying the configuration of those common web container services within a Spring Container bootstrapped from a simple main() method.我认为,如果要提供从上到下充分利用Spring组件和配置模型的工具和参考体系结构,则可以大大简化Spring的Web应用程序体系结构。在通过简单main()方法引导的Spring容器中嵌入和统一那些通用Web容器服务的配置。
复制代码

而且 Spring 开发团队也意识到了这些问题,急需要一套软件来解决这个问题,而这个时候微服务的概念也慢慢的起来,快速开发微小独立的应用也变得很急迫。

而 Spring 恰好处在这样一个交叉点上,所以顺势而为在 2013 年初的时候,开始投入 Spring Boot 项目的研发,直到 2014 年 4 月,Spring Boot1.0 版本发布。从那以后,Spring Boot 开启了一些列的迭代和升级的过程。

经过 7 年时间的发展,到目前为止,Spring Boot 最新稳定版为 2.6.0 版本。

Spring Boot 的发展

Spring Boot 刚出生的时候,引起了很多开源社区的关注,并且也有个人和企业开始尝试使用 Spring Boot。其实直到 2016 年,Spring Boot 才真正在国内被使用起来。我之前在挖财的时候,2015 年公司就开始采用 Spring Boot 来构建基于 Dubbo 的微服务架构。到现在,Spring Boot 几乎是所有公司的第一选择。

Build Anything

Spring Boot 被官方定位为“BUILD ANYTHING”,Spring Boot 官方的概述是这么描述 Spring Boot 的。

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".// 通过Spring Boot可以轻松的创建独立的、生产级别的基于Spring 生态下的应用,你只需要运行即可。We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.//对于Spring平台和第三方库,我们提供了一个固化的视图,这个视图可以让我们在构建应用是减少很多麻烦。大部分spring boot应用只需要最小的Spring 配置即可。
复制代码

如果大家在java培训学习过程中不习惯看英文文档,可能理解起来比较复杂,翻译成人话就是:Spring Boot 能够帮助使用 Spring Framework 生态的开发者快速高效的构建一个基于 Spring 以及 spring 生态体系的应用。

为了让大家对这句话的理解更加深刻,我们来做两个小实验,一个是基于传统的 Spring MVC 框架构建一个项目、另一种是使用 Spring Boot。

Spring MVC With Spring Boot

通过 Spring MVC 项目搭建过程来对比 Spring Boot 的差异和优势。

Spring MVC 项目搭建过程

  • 创建一个 maven-webapp 项目
  • 添加 jar 包依赖
  <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-beans</artifactId>      <version>5.2.5.RELEASE</version>  </dependency>  <dependency>      <groupId>commons-logging</groupId>      <artifactId>commons-logging</artifactId>      <version>1.2</version>  </dependenc
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值