javascript
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)https://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 Boothttps://spring.io/projects/spring-boot#learn
?
可以下載PDF文件,方便用。?
總結
以上是生活随笔為你收集整理的3. Spring Boot 从零开始学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux查看最后一页日志,linux常
- 下一篇: JS动画 | 用TweenMax实现收集