- Spring核心技術和案例實戰
- 鄭天民
- 1119字
- 2023-06-21 18:56:28
1.2 Spring家族生態
Spring框架自2003年由Rod Johnson設計并實現以來,經歷了多個重大版本的發展和演進,已經形成了一個龐大的“家族式技術生態圈”。目前,Spring已經是Java EE領域非常流行的開發框架,在全球各大企業中都得到了廣泛應用。本節將梳理整個Spring家族中的技術體系,以及各種功能齊全的開發框架。
讓我們通過Spring的官方網站來看一下Spring家族技術生態的全景圖,如圖1-2所示。
可以看到,這里羅列了Spring框架的七大核心技術體系,分別是微服務架構、響應式編程、云原生、Web應用、Serverless架構、事件驅動以及批處理。
一方面,這些技術體系各自獨立但也有一定交集,例如微服務架構往往會與基于Spring Cloud的云原生技術結合在一起使用,而微服務架構的構建過程也需要依賴于能夠提供RESTful風格的Web應用程序等。
另一方面,除了具備特定的技術特點,這些技術體系也各有其應用場景。例如,如果我們想要實現日常報表等輕量級的批處理任務,而又不想引入Hadoop這套龐大的離線處理平臺,那么使用基于Spring Batch的批處理框架是一個不錯的選擇。再比方說,如果想要實現與Kafka、RabbitMQ等各種主流消息中間件的集成,但又希望開發人員不需要了解這些中間件在使用上的差別,那么使用基于Spring Cloud Stream的事件驅動架構是首選,因為這個框架對外提供了統一的API,從而屏蔽了內部各個中間件在實現上的差異性。

圖1-2 Spring家族技術體系(來自Spring官網)
當然,所有我們現在能看到的Spring家族技術體系都是在Spring Framework的基礎上逐步演進而來的。在介紹上述技術體系之前,我們先簡單對其進行回顧。Spring Framework的整體架構如圖1-3所示。

圖1-3 Spring Framework的整體架構
Spring從誕生之初就被認為是一種容器,圖1-3中的核心容器部分就包含一個容器所應該具備的核心功能,涉及1.1節中介紹的基于依賴注入機制的Bean、AOP、Context,以及Spring自身所提供的表達式工具Instrument等一些輔助功能。
圖1-3最上面的就是構建應用程序所需要的兩大核心功能組件,也是我們日常開發中最常用的組件,即數據訪問和Web服務。這兩大功能組件中包含的內容非常多,而且充分體現了Spring Framework的集成性。也就是說,框架內部整合了業界主流的數據庫驅動、消息中間件、ORM框架等各種工具,開發人員可以根據需要靈活地替換和調整自己想要使用的工具。
從開發語言上講,雖然Spring最廣泛的一個應用場景是在Java EE領域,但在最新的版本中也支持Kotlin、Groovy以及各種動態開發語言。
本書無意對Spring中的所有七大技術體系做全面的展開。在日常開發過程中,如果要構建單塊Web服務,可以采用Spring Boot。如果想要開發微服務架構,那么需要使用基于Spring Boot的Spring Cloud,而Spring Cloud同樣內置了基于Spring Cloud Stream的事件驅動架構。同時,在這里應特別強調的是響應式編程技術。響應式編程是Spring 5引入的最大創新,代表了一種系統架構設計和實現的技術方向。因此,本書也將從Spring Boot、Spring Cloud以及Spring響應式編程這三大技術體系進行切入,看看Spring具體能夠為我們解決開發過程中的哪些問題。
- DevOps with Kubernetes
- SpringMVC+MyBatis快速開發與項目實戰
- 深入淺出Electron:原理、工程與實踐
- JavaScript入門經典
- Learning Hunk
- 程序設計基礎教程:C語言
- Python Interviews
- Python大規模機器學習
- Yii2 By Example
- Getting Started with Windows Server Security
- Backbone.js Patterns and Best Practices
- Python自動化開發實戰
- Ionic Framework By Example
- JSP程序設計與案例教程
- Learning Predictive Analytics with R