javascript
3. Spring Boot 从零开始学习
1. Spring 的生態(tài)圈
Spring 官網(wǎng)地址:Spring | Homehttps://spring.io/
進(jìn)入官網(wǎng)首頁(yè),可以看到Spring能做什么:
1. Microservices: 微服務(wù)開(kāi)發(fā)。把大型應(yīng)用拆分成一個(gè)個(gè)微小的功能模塊,每一個(gè)微小的功能模塊就是一個(gè)微服務(wù)。
2. Reactive: 響應(yīng)式編程。基于異步非阻塞的方式, 整個(gè)應(yīng)用之間構(gòu)建異步數(shù)據(jù)流的方式,異步數(shù)據(jù)流運(yùn)行占用少量的服務(wù)器線(xiàn)程資源(少量的CPU,少量的內(nèi)存資源),從而構(gòu)建一個(gè)高吞吐量的應(yīng)用。
3. Cloud:分布式云開(kāi)發(fā)。大型應(yīng)用拆成多個(gè)微小應(yīng)用,就回產(chǎn)生分布式,Cloud提供了相關(guān)的解決方案。
4. Web apps:web開(kāi)發(fā)。最常用的,可以用Spring MVC來(lái)實(shí)現(xiàn)。
5. Serverless: 無(wú)服務(wù)開(kāi)發(fā)。即函數(shù)式服務(wù),無(wú)需購(gòu)買(mǎi)服務(wù)器,用到多少付費(fèi)多少。
6. Event Driven: 事件驅(qū)動(dòng)。基于事件的方式構(gòu)建出實(shí)時(shí)的數(shù)據(jù)流。結(jié)合響應(yīng)式編程,只要占用少量的資源就能完成高吞吐量的業(yè)務(wù)。
7. Batch:批處理。批量讀取、處理和寫(xiě)數(shù)據(jù),處理大數(shù)據(jù),處理流程數(shù)據(jù)。
Spring 為了完成上面的事情,提供了整個(gè)技術(shù)生態(tài)圈, 在Spring 首頁(yè)可以看到:
點(diǎn)進(jìn)去發(fā)現(xiàn)整個(gè)生態(tài)圈包含很多東西:
Spring 整個(gè)生態(tài)圈包括這么多框架,那么就存在一個(gè)問(wèn)題:怎么更好地整合這些框架???
Spring 微觀上說(shuō)是指Spring Framework 框架,宏觀上來(lái)說(shuō)是指Spring 的整個(gè)生態(tài)圈(包括全部相關(guān)框架)。整個(gè)生態(tài)圈包含了一系列框架,幾乎包含了整個(gè)web開(kāi)發(fā)的各個(gè)方面, 包括web開(kāi)發(fā)、數(shù)據(jù)訪問(wèn)、安全控制、分布式、消息服務(wù)、移動(dòng)開(kāi)發(fā)、批處理等等。
以前要整合框架,需要很多的配置,很多xml 配置,這樣就配置起來(lái)很復(fù)雜。這樣,Spring Boot 就可以幫我們完成整合的任務(wù),這也是Spring Boot 存在的重要意義。Spring Boot可以說(shuō)是Spring 的一個(gè)高層框架,它的底層是Spring 框架,所以依賴(lài)關(guān)系是 Spring Boot --》Spring --》Java。
2. Spring Boot 2 特性
2.1 Spring Boot 2?支持響應(yīng)式編程(也是Spring 5 的重大升級(jí))
從官網(wǎng)首頁(yè)進(jìn)入如下頁(yè)面,可以看到基于Spring Boot 2 實(shí)現(xiàn)響應(yīng)式編程的技術(shù)棧圖:
?點(diǎn)擊進(jìn)去,可以看到:
?從上面的技術(shù)??梢钥吹?#xff0c;Spring Boot 2 引入了兩套技術(shù)棧:
Servlet Stack:基于Servlet 的技術(shù)棧,以前比較原生的技術(shù)棧,基于Spring MVC那一套。
Reactive Stack:基于響應(yīng)式的技術(shù)棧,是Spring Boot 2 新引入的技術(shù)棧,基于Spring WebFlux的響應(yīng)式開(kāi)發(fā)。
2.2 基于Java 8 的一些新特性
為了支持Java 8 的一些新特性,Spring Boot 重新設(shè)計(jì)了源碼架構(gòu)。
3. Spring Boot 優(yōu)點(diǎn)
Spring Boot 能夠幫忙快速創(chuàng)建生產(chǎn)級(jí)別的Spring 應(yīng)用, 是整合Spring 技術(shù)棧的一站式框架,是簡(jiǎn)化Spring 技術(shù)棧的快速開(kāi)發(fā)的腳手架。
1. 創(chuàng)建獨(dú)立的Spring 應(yīng)用
2. 內(nèi)嵌Web服務(wù)器
3. 自動(dòng)starter依賴(lài),簡(jiǎn)化構(gòu)建配置
4. 自動(dòng)配置Spring 以及第三方功能
5. 提供生產(chǎn)基本的監(jiān)控、健康檢查及外部化配置
6. 無(wú)代碼生成,無(wú)需編寫(xiě)XML
4. 微服務(wù)概念
Microservices Guide (martinfowler.com)https://martinfowler.com/microservices/
?微服務(wù)首次由James Lewis and Martin Fowler (2014)?提出,具體可以看上面網(wǎng)站,里面提出的微服務(wù)概念包括如下幾點(diǎn):
1. 微服務(wù)是一種架構(gòu)風(fēng)格。
2. 一個(gè)應(yīng)用拆分為一組微服務(wù)。
3. 每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程內(nèi),也就是可以獨(dú)立部署和升級(jí)。
4. 服務(wù)之間使用輕量級(jí)HTTP交互。
5. 服務(wù)圍繞業(yè)務(wù)功能拆分。
6. 可以由圈自動(dòng)部署機(jī)制獨(dú)立部署。
7. 去中心化,服務(wù)自治。服務(wù)可以使用不同的語(yǔ)言、不同的存儲(chǔ)技術(shù)。
5. 分布式概念
微服務(wù)中包括很多業(yè)務(wù)上由交互的微小服務(wù),那么就產(chǎn)生了分布式,分布式需要考慮如下 問(wèn)題:
1. 遠(yuǎn)程調(diào)用
2. 服務(wù)發(fā)現(xiàn)
3. 負(fù)載均衡
4. 服務(wù)容錯(cuò)
5. 配置管理
6. 服務(wù)監(jiān)控
7. 鏈路追蹤
8. 日志管理
9. 任務(wù)調(diào)度
、、、
如下的分布式問(wèn)題, Spring Boot 結(jié)合 Spring Cloud 提供了一套完整的解決方案。截取官網(wǎng)的圖如下:
6. 云原生概念
?服務(wù)開(kāi)發(fā)好后,要考慮如何上云,又需要考慮幾個(gè)問(wèn)題:
1. 服務(wù)自愈
2. 彈性伸縮
3. 服務(wù)隔離
4. 自動(dòng)化部署
5. 灰度發(fā)布
6. 流量治理
、、、
7. Spring Boot 官方文檔
學(xué)習(xí)Spring Boot 最直接的方式就是從官網(wǎng)上的文檔開(kāi)始學(xué)習(xí):
Spring Boothttps://spring.io/projects/spring-boot#learn
?
可以下載PDF文件,方便用。?
總結(jié)
以上是生活随笔為你收集整理的3. Spring Boot 从零开始学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux查看最后一页日志,linux常
- 下一篇: gradle idea java ssm