3. Spring Boot 从零开始学习

1. Spring 的生态圈

Spring 官网地址:Spring | Homehttps://spring.io/

进入官网首页,可以看到Spring能做什么

1. Microservices: 微服务开发。把大型应用拆分成一个个微小的功能模块,每一个微小的功能模块就是一个微服务。

2. Reactive: 响应式编程。基于异步非阻塞的方式, 整个应用之间构建异步数据流的方式,异步数据流运行占用少量的服务器线程资源(少量的CPU,少量的内存资源),从而构建一个高吞吐量的应用。

3. Cloud:分布式云开发。大型应用拆成多个微小应用,就回产生分布式,Cloud提供了相关的解决方案。

4. Web apps:web开发。最常用的,可以用Spring MVC来实现。

5. Serverless: 无服务开发。即函数式服务,无需购买服务器,用到多少付费多少。

6. Event Driven: 事件驱动。基于事件的方式构建出实时的数据流。结合响应式编程,只要占用少量的资源就能完成高吞吐量的业务。

7. Batch:批处理。批量读取、处理和写数据,处理大数据,处理流程数据。

Spring 为了完成上面的事情,提供了整个技术生态圈, 在Spring 首页可以看到:

点进去发现整个生态圈包含很多东西:

Spring 整个生态圈包括这么多框架,那么就存在一个问题:怎么更好地整合这些框架?  

Spring 微观上说是指Spring Framework 框架,宏观上来说是指Spring 的整个生态圈(包括全部相关框架)。整个生态圈包含了一系列框架,几乎包含了整个web开发的各个方面, 包括web开发、数据访问、安全控制、分布式、消息服务、移动开发、批处理等等。

以前要整合框架,需要很多的配置,很多xml 配置,这样就配置起来很复杂。这样,Spring Boot 就可以帮我们完成整合的任务,这也是Spring Boot 存在的重要意义。Spring Boot可以说是Spring 的一个高层框架,它的底层是Spring 框架,所以依赖关系是 Spring Boot --》Spring --》Java。

2. Spring Boot 2 特性

2.1 Spring Boot 2 支持响应式编程(也是Spring 5 的重大升级)

从官网首页进入如下页面,可以看到基于Spring Boot 2 实现响应式编程的技术栈图:

 点击进去,可以看到:

 从上面的技术栈可以看到,Spring Boot 2 引入了两套技术栈:

Servlet Stack:基于Servlet 的技术栈,以前比较原生的技术栈,基于Spring MVC那一套。

Reactive Stack:基于响应式的技术栈,是Spring Boot 2 新引入的技术栈,基于Spring WebFlux的响应式开发。

2.2 基于Java 8 的一些新特性

为了支持Java 8 的一些新特性,Spring Boot 重新设计了源码架构。

3. Spring Boot 优点

Spring Boot 能够帮忙快速创建生产级别的Spring 应用, 是整合Spring 技术栈的一站式框架,是简化Spring 技术栈的快速开发的脚手架。

1. 创建独立的Spring 应用

2. 内嵌Web服务器

3. 自动starter依赖,简化构建配置

4. 自动配置Spring 以及第三方功能

5. 提供生产基本的监控、健康检查及外部化配置

6. 无代码生成,无需编写XML

4. 微服务概念

Microservices Guide (martinfowler.com)icon-default.png?t=M276https://martinfowler.com/microservices/

 微服务首次由James Lewis and Martin Fowler (2014) 提出,具体可以看上面网站,里面提出的微服务概念包括如下几点:

1. 微服务是一种架构风格。

2. 一个应用拆分为一组微服务。

3. 每个服务运行在自己的进程内,也就是可以独立部署和升级。

4. 服务之间使用轻量级HTTP交互。

5. 服务围绕业务功能拆分。

6. 可以由圈自动部署机制独立部署。

7. 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术。

5. 分布式概念

微服务中包括很多业务上由交互的微小服务,那么就产生了分布式,分布式需要考虑如下 问题:

1. 远程调用

2. 服务发现

3. 负载均衡

4. 服务容错

5. 配置管理

6. 服务监控

7. 链路追踪

8. 日志管理

9. 任务调度

、、、

如下的分布式问题, Spring Boot 结合 Spring Cloud 提供了一套完整的解决方案。截取官网的图如下:

6. 云原生概念

 服务开发好后,要考虑如何上云,又需要考虑几个问题:

1. 服务自愈

2. 弹性伸缩

3. 服务隔离

4. 自动化部署

5. 灰度发布

6. 流量治理

、、、

7. Spring Boot 官方文档

学习Spring Boot 最直接的方式就是从官网上的文档开始学习:

Spring Booticon-default.png?t=M276https://spring.io/projects/spring-boot#learn

 

可以下载PDF文件,方便用。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值