电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java Springboot之Spring家族的技術體系

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

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

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

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

越來越強大的 Spring Boot 儼然是 Java EE 領域的標準開發(fā)框架了。熟練掌握 Spring Boot 中的各項技術組件,并能夠在一定程度上掌握其內部運行機制,是從事 Java 應用程序開發(fā)的基本要求,也是學習 Spring Cloud 等微服務開發(fā)框架的基礎。

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

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

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

訪問 下Spring 的官方網站 https://spring.io/

Java Springboot之Spring家族的技術體系

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

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

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

舉個例子

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

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

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

三、Spring Framework 的整體架構

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

【4.x】

Java Springboot之Spring家族的技術體系

四、Spring Boot 與 Web 應用程序

Spring Boot 構建在 Spring Framework 基礎之上,是新一代的 Web 應用程序開發(fā)框架。

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

Java Springboot之Spring家族的技術體系

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

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

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

一個經典的“Hello World”程序,而且使用 Spring Boot 來構建這樣一個支持 RESTful 風格的 Web 應用程序只需要幾秒鐘。

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

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

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

在最新的 Spring Boot 2.X 版本中,還提供了對 Netty 以及集成 Servlet 3.1+ 的非阻塞式容器的支持?;谶\行期內嵌容器機制。

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

Java Springboot之Spring家族的技術體系

六、自動配置

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

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

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

Java Springboot之Spring家族的技術體系

七、內置的監(jiān)控機制

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

Java Springboot之Spring家族的技術體系

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

八、Spring Cloud (Netflix)與微服務架構

Spring Cloud 構建在 Spring Boot 基礎之上,它的整體架構圖如下所示:

Java Springboot之Spring家族的技術體系

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

Java Springboot之Spring家族的技術體系

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

九、Spring 5 與響應式編程

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

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

Java Springboot之Spring家族的技術體系

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

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

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

Java Springboot之Spring家族的技術體系

在基于 Spring Boot 以及 Spring Cloud 的應用程序中,Spring WebFlux 和 Spring MVC 可以混合進行使用。

十、小結

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

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

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

標簽: Java
相關文章:
主站蜘蛛池模板: 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 咖啡加盟,咖啡店加盟连锁品牌-卡小逗 | 制冷采购电子商务平台——制冷大市场 | 818手游网_提供当下热门APP手游_最新手机游戏下载| 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 空压机网_《压缩机》杂志 | 变压器配件,变压器吸湿器,武强县吉口变压器配件有限公司 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 合肥角钢_合肥槽钢_安徽镀锌管厂家-昆瑟商贸有限公司 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 气动绞车,山东气动绞车,气动绞车厂家-烟台博海石油机械有限公司 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 铆钉机|旋铆机|东莞旋铆机厂家|鸿佰专业生产气压/油压/自动铆钉机 | 河南15年专业网站建设制作设计,做网站就找郑州启凡网络公司 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | China plate rolling machine manufacturer,cone rolling machine-Saint Fighter | 外贸资讯网 - 洞悉全球贸易,把握市场先机 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 |