成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Java Springboot之Spring家族的技術(shù)體系

瀏覽:70日期:2022-08-12 10:01:10
目錄一、Why二、Spring 家族技術(shù)生態(tài)全景圖三、Spring Framework 的整體架構(gòu)四、Spring Boot 與 Web 應(yīng)用程序五、支持運行期內(nèi)嵌容器(傳統(tǒng) Web 容器& 非阻塞式容器)六、自動配置七、內(nèi)置的監(jiān)控機(jī)制八、Spring Cloud (Netflix)與微服務(wù)架構(gòu)九、Spring 5 與響應(yīng)式編程十、小結(jié)一、Why

Spring Boot 在傳統(tǒng) Spring 框架的基礎(chǔ)上做了創(chuàng)新和優(yōu)化,將開發(fā)人員從以往煩瑣的配置工作中解放出來,并提供了大量即插即用的集成化組件,從而解決了各種組件之間復(fù)雜的整合過程,大大提高了開發(fā)效率,降低了維護(hù)成本。

比如, 原本使用的是 Spring MVC 框架, 在整個開發(fā)過程中,除了需要編寫一大堆配置文件、針對每個層次引入專門的開發(fā)組件外,還需要獨立部署和管理應(yīng)用服務(wù)器。最后,為了對系統(tǒng)的運行狀態(tài)進(jìn)行有效監(jiān)控,還需要引入一些并不好用的外部框架。

而使用了 Spring Boot 框架,因為它直接解決了使配置 、 編程 、 部署 、 監(jiān)控 ,好用、簡單又高效。

越來越強(qiáng)大的 Spring Boot 儼然是 Java EE 領(lǐng)域的標(biāo)準(zhǔn)開發(fā)框架了。熟練掌握 Spring Boot 中的各項技術(shù)組件,并能夠在一定程度上掌握其內(nèi)部運行機(jī)制,是從事 Java 應(yīng)用程序開發(fā)的基本要求,也是學(xué)習(xí) Spring Cloud 等微服務(wù)開發(fā)框架的基礎(chǔ)。

二、Spring 家族技術(shù)生態(tài)全景圖

Spring 框架自 2003 年由 Rod Johnson 設(shè)計并實現(xiàn)以來,經(jīng)歷了多個重大版本的發(fā)展和演進(jìn),已經(jīng)形成了一個龐大的家族式技術(shù)生態(tài)圈。目前,Spring 已經(jīng)是 Java EE 領(lǐng)域最流行的開發(fā)框架,在全球各大企業(yè)中都得到了廣泛應(yīng)用。

讓我們先來看一下 Spring 家族技術(shù)生態(tài)的全景圖。

訪問 下Spring 的官方網(wǎng)站 https://spring.io/

Java Springboot之Spring家族的技術(shù)體系

從圖中可以看到,這里羅列了 Spring 框架的七大核心技術(shù)體系,分別是微服務(wù)架構(gòu)、響應(yīng)式編程、云原生、Web 應(yīng)用、Serverless 架構(gòu)、事件驅(qū)動以及批處理

這些技術(shù)體系各自獨立但也有一定交集,例如微服務(wù)架構(gòu)往往會與基于 Spring Cloud 的云原生技術(shù)結(jié)合在一起使用,而微服務(wù)架構(gòu)的構(gòu)建過程也需要依賴于能夠提供 RESTful 風(fēng)格的 Web 應(yīng)用程序等。

另一方面,在具備特定的技術(shù)特點之外,這些技術(shù)體系也各有其應(yīng)用場景。

舉個例子

如果我們想要實現(xiàn)日常報表等輕量級的批處理任務(wù),而又不想引入 Hadoop 這套龐大的離線處理平臺時,使用基于 Spring Batch 的批處理框架是一個不錯的選擇 如果想要實現(xiàn)與 Kafka、RabbitMQ 等各種主流消息中間件之間的集成,屏蔽這些中間件在使用上的差別,那么使用基于 Spring Cloud Stream 的事件驅(qū)動架構(gòu)對外提供了統(tǒng)一的 API, 屏蔽了內(nèi)部各個中間件在實現(xiàn)上的差異性。

在日常開發(fā)過程中,如果構(gòu)建單塊 Web 服務(wù),可以采用 Spring Boot。如果想要開發(fā)微服務(wù)架構(gòu),那么就需要使用基于 Spring Boot 的 Spring Cloud,而 Spring Cloud 同樣內(nèi)置了基于 Spring Cloud Stream 的事件驅(qū)動架構(gòu)。

同時, 特別強(qiáng)調(diào)的是響應(yīng)式編程技術(shù)。響應(yīng)式編程是 Spring 5 引入的最大創(chuàng)新,代表了一種系統(tǒng)架構(gòu)設(shè)計和實現(xiàn)的技術(shù)方向。因此,我們也將從 Spring Boot、Spring Cloud 以及 Spring 響應(yīng)式編程這三個技術(shù)體系進(jìn)行切入,看看 Spring 具體能夠為我們解決開發(fā)過程中的哪些問題。

三、Spring Framework 的整體架構(gòu)

當(dāng)然,所有我們現(xiàn)在能看到的 Spring 家族技術(shù)體系都是在 Spring Framework 基礎(chǔ)上逐步演進(jìn)而來的。在介紹上述技術(shù)體系之前,我們先簡單了解下 Spring Framework 的整體架構(gòu),如下圖所示:

【4.x】

Java Springboot之Spring家族的技術(shù)體系

四、Spring Boot 與 Web 應(yīng)用程序

Spring Boot 構(gòu)建在 Spring Framework 基礎(chǔ)之上,是新一代的 Web 應(yīng)用程序開發(fā)框架。

我們可以通過下面這張圖來了解 Spring Boot 的全貌:

Java Springboot之Spring家族的技術(shù)體系

通過瀏覽 Spring 的官方網(wǎng)站,我們可以看到 Spring Boot 已經(jīng)成為 Spring 中頂級的子項目。自 2014 年 4 月發(fā)布 1.0.0 版本以來,Spring Boot 儼然已經(jīng)發(fā)展為 Java EE 領(lǐng)域開發(fā) Web 應(yīng)用程序的首選框架。

先來感受一下使用 Spring Boot 開發(fā)一個 RESTful風(fēng)格 的 HTTP 端點所需要做的編碼工作,如下所示:

@SpringBootApplication@RestControllerpublic class DemoApplication { @GetMapping('/helloworld')public String hello() { return 'Hello World!';} public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args); }}

一個經(jīng)典的“Hello World”程序,而且使用 Spring Boot 來構(gòu)建這樣一個支持 RESTful 風(fēng)格的 Web 應(yīng)用程序只需要幾秒鐘。

一旦創(chuàng)建了一個 Spring Boot 應(yīng)用程序,并添加類似上面的 DemoApplication 類,我們就可以啟動 Spring Boot 內(nèi)置的 Web 服務(wù)器并監(jiān)聽 8080 端口,剩余的一切工作 Spring Boot 都幫你自動完成了。

五、支持運行期內(nèi)嵌容器(傳統(tǒng) Web 容器& 非阻塞式容器)

Spring Boot 具備了傳統(tǒng) Spring 框架所不具備的功能特性,即支持運行期內(nèi)嵌容器(包含 Tomcat、Jetty 等支持 Servlet 規(guī)范的多款傳統(tǒng) Web 容器)

在最新的 Spring Boot 2.X 版本中,還提供了對 Netty 以及集成 Servlet 3.1+ 的非阻塞式容器的支持。基于運行期內(nèi)嵌容器機(jī)制

開發(fā)人員想要啟動Web 服務(wù)只需要使用一行 java ?jar 命令就可以了。

Java Springboot之Spring家族的技術(shù)體系

六、自動配置

我們還發(fā)現(xiàn) Spring Boot 的核心功能就是自動配置

我們可以看到 Spring Boot 并沒有像以前使用 Spring MVC 一樣需要指定一大堆關(guān)于 HTTP 請求和響應(yīng)的 XML 配置。

事實上,Spring Boot 的運行過程同樣還是依賴于 Spring MVC,但是它把原本需要開發(fā)人員指定的各種配置項設(shè)置了默認(rèn)值,并內(nèi)置在了運行時環(huán)境中,例如默認(rèn)的服務(wù)器端口就是 8080,如果我們不需要對這些配置項有定制化需求,就可以不做任何的處理,采用既定的開發(fā)約定即可。這就是 Spring Boot 所倡導(dǎo)的約定優(yōu)于配置(Convention over Configuration)設(shè)計理念

Java Springboot之Spring家族的技術(shù)體系

七、內(nèi)置的監(jiān)控機(jī)制

另外,相較傳統(tǒng)的 Spring 框架,Spring Boot 的一大亮點是引入了內(nèi)置的監(jiān)控機(jī)制,這是通過 Actuator 組件(常見的包括內(nèi)存信息、JVM 信息、垃圾回收信息等)來實現(xiàn)的。基于 Actuator 組件,一方面我們可以查看包含自動配置在內(nèi)的應(yīng)用程序詳細(xì)信息,另一方面可以實時監(jiān)控該應(yīng)用程序的運行時健康狀態(tài)。

Java Springboot之Spring家族的技術(shù)體系

可以看到,Spring Boot 的上述功能實際上從多個維度簡化了 Web 應(yīng)用程序的開關(guān)過程,這些維度包含編碼、配置、部署和監(jiān)控等。

八、Spring Cloud (Netflix)與微服務(wù)架構(gòu)

Spring Cloud 構(gòu)建在 Spring Boot 基礎(chǔ)之上,它的整體架構(gòu)圖如下所示:

Java Springboot之Spring家族的技術(shù)體系

技術(shù)組件的完備性是 Spring Cloud 框架的主要優(yōu)勢,它集成了業(yè)界一大批知名的微服務(wù)開發(fā)組件。Spring Cloud 的核心組件如下圖所示

Java Springboot之Spring家族的技術(shù)體系

可以看到,基于 Spring Boot 的開發(fā)便利性,Spring Cloud 巧妙地簡化了微服務(wù)系統(tǒng)基礎(chǔ)設(shè)施的開發(fā)過程,Spring Cloud 包含上圖中所展示的服務(wù)發(fā)現(xiàn)注冊、API 網(wǎng)關(guān)、配置中心、消息總線、負(fù)載均衡、熔斷器、數(shù)據(jù)監(jiān)控等

九、Spring 5 與響應(yīng)式編程

隨著 Spring 5 的正式發(fā)布,我們迎來了響應(yīng)式編程(Reactive Programming)的全新發(fā)展時期。Spring 5 中內(nèi)嵌了與數(shù)據(jù)管理相關(guān)的響應(yīng)式數(shù)據(jù)訪問、與系統(tǒng)集成相關(guān)的響應(yīng)式消息通信以及與 Web 服務(wù)相關(guān)的響應(yīng)式 Web 框架等多種響應(yīng)式組件,從而極大地簡化了響應(yīng)式應(yīng)用程序的開發(fā)過程和開發(fā)難度。

下圖展示了響應(yīng)式編程的技術(shù)棧與傳統(tǒng)的 Servlet 技術(shù)棧之間的對比:

Java Springboot之Spring家族的技術(shù)體系

從上圖可以看到,上圖左側(cè)為基于 Spring WebFlux 的技術(shù)棧,右側(cè)為基于 Spring MVC 的技術(shù)棧。我們知道傳統(tǒng)的 Spring MVC 構(gòu)建在 Java EE 的 Servlet 標(biāo)準(zhǔn)之上,該標(biāo)準(zhǔn)本身就是阻塞式和同步的,而 Spring WebFlux 基于響應(yīng)式流,因此可以用來構(gòu)建異步非阻塞的服務(wù)

在 Spring 5 中,選取了 Project Reactor 作為響應(yīng)式流的實現(xiàn)庫。由于響應(yīng)式編程的特性,Spring WebFlux 和 Project Reactor 的運行需要依賴于諸如 Netty 和 Undertow 等支持異步機(jī)制的容器。同時我們也可以選擇使用較新版本的 Tomcat 和 Jetty 作為運行環(huán)境,因為它們支持異步 I/O 的 Servlet 3.1

下圖更加明顯地展示了 Spring MVC 和 Spring WebFlux 之間的區(qū)別和聯(lián)系:

Java Springboot之Spring家族的技術(shù)體系

在基于 Spring Boot 以及 Spring Cloud 的應(yīng)用程序中,Spring WebFlux 和 Spring MVC 可以混合進(jìn)行使用。

十、小結(jié)

我們主要圍繞 Spring Boot 框架展開討論,分別從配置體系、數(shù)據(jù)訪問、Web 服務(wù)、消息通信、系統(tǒng)安全、系統(tǒng)監(jiān)控、應(yīng)用測試等維度對該框架進(jìn)行深入的剖析,所采用的版本為 2.2.X 版。

系統(tǒng)分析了 Spring 家族的技術(shù)生態(tài),并重點介紹了 Spring Boot、Spring Cloud 和 Spring 響應(yīng)式編程這三大技術(shù)體系。從技術(shù)演進(jìn)的過程和趨勢而言,這些工具和框架的出現(xiàn)有其必然性。Spring Boot 是對傳統(tǒng) Spring MVC 的改進(jìn),Spring Cloud 基于 Spring Boot 構(gòu)建微服務(wù)架構(gòu),而響應(yīng)式編程則代表未來技術(shù)的發(fā)展方向。

到此這篇關(guān)于Java Springboot之Spring家族的技術(shù)體系的文章就介紹到這了,更多相關(guān)Spring家族的技術(shù)體系內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美在线|欧美| 国产精品中文字幕一区二区三区| 日韩精品一区第一页| 影音先锋久久久| 久久精品日韩一区二区三区| 成人激情动漫在线观看| 欧美一区二区黄色| 国产高清亚洲一区| 欧美放荡的少妇| 国产麻豆精品95视频| 欧美日韩一区二区电影| 免费看精品久久片| 欧美亚洲综合久久| 久久机这里只有精品| 欧美三级电影在线看| 麻豆国产欧美一区二区三区| 91福利视频网站| 裸体歌舞表演一区二区| 色婷婷综合五月| 免费人成精品欧美精品 | 蜜桃av噜噜一区| 欧美在线观看一区二区| 麻豆成人久久精品二区三区红| 色婷婷激情一区二区三区| 日产精品久久久久久久性色| 日本韩国精品在线| 精品无人码麻豆乱码1区2区 | 精品国产乱码久久久久久影片| 高清不卡一二三区| 欧美不卡123| 午夜电影亚洲| 国产精品成人午夜| 国产亚洲一区在线| 免费精品视频最新在线| 欧美日韩国产首页| 成人免费视频视频在线观看免费| 久久亚洲一区二区三区四区| 欧美黄免费看| 亚洲欧美日韩一区| 麻豆精品网站| 毛片av一区二区| 日韩一级高清毛片| 色综合色狠狠综合色| 亚洲桃色在线一区| 在线免费av一区| 国产传媒久久文化传媒| 久久综合久久综合九色| 亚洲夜间福利| 午夜电影久久久| 在线播放亚洲一区| 女同性一区二区三区人了人一| 亚洲三级在线看| 色婷婷av一区二区三区软件 | 99热精品国产| 亚洲国产高清在线| 免费亚洲一区二区| 国产在线国偷精品产拍免费yy| 精品99999| 亚洲黄色成人| 蜜桃久久av一区| 欧美精品一区二区三| 亚洲大胆女人| 麻豆视频观看网址久久| 欧美精品一区二区精品网| 亚洲高清不卡一区| 青娱乐精品在线视频| 欧美一区二区三区视频免费| 欧美日本一区二区视频在线观看| 亚洲一区二区三区小说| 欧美精品在线观看播放| 欧美日本亚洲韩国国产| 亚洲第一福利视频在线| 4438x成人网最大色成网站| 91麻豆精品秘密| 午夜免费久久看| 久久综合999| 免费欧美日韩| 99精品在线免费| 亚洲成人一区二区在线观看| 日韩欧美久久久| 国产精品久久九九| 国产乱码字幕精品高清av | 国产欧美日韩综合一区在线观看 | 黄色亚洲在线| 奇米四色…亚洲| 久久综合网色—综合色88| 99国内精品| 国产在线精品一区二区不卡了| 中文字幕在线不卡一区二区三区| 欧美午夜精品久久久久久孕妇| 欧美jjzz| 奇米精品一区二区三区在线观看一| 久久久久久久av麻豆果冻| 性刺激综合网| 色综合天天综合狠狠| 日本中文字幕一区| 国产精品视频免费看| 欧美午夜片在线看| 国内精品久久久久久久影视蜜臀 | 亚洲女同ⅹxx女同tv| 欧美剧情片在线观看| 日韩视频在线观看国产| 国产精品91一区二区| 一区二区三区四区精品在线视频| 日韩一区二区三区免费看| 国产精品主播| 91在线视频网址| 另类小说视频一区二区| 亚洲啪啪综合av一区二区三区| 日韩欧美国产一区二区三区| 翔田千里一区二区| 国产精品草草| 国产91精品久久久久久久网曝门 | 91在线观看高清| 欧美a级理论片| 中文字幕日韩欧美一区二区三区| 日韩天堂在线观看| 免费国产自线拍一欧美视频| 色综合视频一区二区三区高清| 美女爽到高潮91| 亚洲激情av在线| 国产亚洲精品超碰| 日韩写真欧美这视频| 色哟哟一区二区| 影音欧美亚洲| 亚洲1区2区3区视频| 中文字幕av资源一区| 日韩久久久精品| 欧美日韩国产美| 奶水喷射视频一区| 在线日韩av永久免费观看| av激情综合网| 国产福利视频一区二区三区| 奇米影视在线99精品| 亚洲国产精品麻豆| 亚洲欧美另类久久久精品| 国产欧美一区二区三区在线老狼| 欧美一区二区三区四区久久| 91极品视觉盛宴| aa级大片欧美三级| 欧美久久电影| 99久久99久久精品国产片果冻| 国产二区国产一区在线观看| 激情小说亚洲一区| 免费国产亚洲视频| 日本中文在线一区| 日韩主播视频在线| 成人欧美一区二区三区1314 | 国内精品在线播放| 日韩成人一级大片| 亚洲一区在线视频| 一区二区三区日韩| 亚洲婷婷综合色高清在线| 国产女人18水真多18精品一级做| 精品久久99ma| 日韩欧美在线不卡| 91精品久久久久久久99蜜桃| 欧美伊人精品成人久久综合97 | 欧美一区二区三区色| 欧美久久久久久久久| 欧美日韩不卡一区| 欧美精选在线播放| 91.麻豆视频| 欧美日韩在线综合| 欧美性做爰猛烈叫床潮| 色久综合一二码| 欧美亚洲一区二区在线观看| 在线视频一区二区三区| 欧美亚洲尤物久久| 欧美日韩国产一区二区三区地区| 欧美日韩国产精品自在自线| 7777精品伊人久久久大香线蕉经典版下载 | 欧亚一区二区三区| 色婷婷av一区二区三区之一色屋| 色999日韩国产欧美一区二区| 久久久精品性| 日本道色综合久久| 欧美日韩一级大片网址| 欧美日韩一区二区三区在线| 欧美色中文字幕| 91麻豆精品国产91久久久久久| 欧美一三区三区四区免费在线看| 欧美一级片在线| 久久综合九色综合欧美98| 国产日产欧美一区二区视频| 国产精品美女久久久久久久网站| 亚洲视频狠狠干| 一区二区久久久| 日韩影院免费视频| 六月丁香综合在线视频| 经典三级视频一区| 成人免费毛片片v| 93久久精品日日躁夜夜躁欧美| 欧美日韩高清在线一区| 亚洲国产欧美不卡在线观看| 亚洲男人影院| 欧美专区日韩专区| 日韩精品专区在线影院重磅| 国产午夜久久久久| 亚洲欧美二区三区|