Spring框架

Spring Framework 是最流行的 Java EE 框架之一。在本文中,我們將學習以下內容:

  • Spring 框架架構
  • Spring 的核心組件
  • Spring 框架下的各種專案。

I looked at the Google Trends chart for Spring Framework, Servlet, JSP, and JSF. It’s clear that Spring is far ahead from all other Java EE technologies.

Spring Framework – Google Trends

什麼是 Spring Framework?

Spring 是 Java 企業版中最受歡迎的框架之一。世界各地的開發人員都使用 Spring 開發可靠且高質量的應用程序。Spring 框架由 Rod Johnson 設計。從那時起,Spring 已成為 Java 世界中 EJB 模型的一種替代技術。您可以使用 Spring 框架創建不同類型的應用程序。

Spring 核心概念 – DI、IoC、AOP

  • 如果不了解什麼是 依賴注入控制反轉,就無法理解 Spring Framework。依賴注入也被稱為 DI,是控制反轉(IoC)的一種類型。
  • 控制反轉 – 這是面向對象編程的原則,程序中的對象不依賴於其他對象的具體實現,但可能了解它們的抽象(接口)以進行後續交互。
  • 依賴注入 – 是結構設計模式的一種組合,應用程序的每個功能都有一個條件獨立的對象(服務),該對象可能需要使用其他對象(依賴)的知識,這些對象通過接口與之交互。依賴在服務創建時傳遞(實現)。這是將一個類的元素引入另一個類的情況。在實踐中,DI通過將參數傳遞給構造函數或使用設置器來實現。實現此方法的庫也被稱為IoC容器。
  • 面向切面編程 – 一種允許區分應用程序中橫跨多個節點的功能的編程範式。這些跨越多個應用節點的功能稱為橫切關注點,並且這些橫切點從應用程序的即時業務邏輯中分離出來。在OOP中,關鍵單元是類,而在AOP中,關鍵元素是切面。DI有助於將應用程序類別分離為單獨的模塊,而AOP有助於將橫切關注點從它們影響的對象中分離出來。

Spring Framework架構

Spring Framework被分成多個獨立模組,這使您可以決定在應用程序中使用哪些模組。下面的圖片顯示了Spring Framework架構中最重要的模組。讓我們一一查看Spring生態系統模組。

Spring Framework核心組件

Spring的核心容器包括四個模組:SpEL、Context、Core、Beans。這些元素的描述如下:

  1. SpEL模組提供了一個強大的表達式語言,用於在執行期間操作對象。
  2. Context是基於Beans和Core構建的,允許您訪問在設置中定義的任何對象。Context模組的關鍵元素是ApplicationContext接口。
  3. Core模組提供了框架的關鍵部分,包括IoC和DI屬性。
  4. Bean模組負責創建和管理Spring Beans – 應用程序上下文結構單元。

Spring Framework Web

Spring框架的Web層由Web、Web-MVC、Web-Socket、Web-Portlet等組成。

  1. Web模塊提供了下載文件、創建Web應用程序、REST Web服務等功能。
  2. Web-MVC包含了用於Web應用程序的Spring MVC實現。
  3. Web-Socket提供了在Web應用程序中使用Web-Socket進行客戶端和服務器之間通信的支持。
  4. Web-Portlet提供了在portlet環境中的MVC實現

Spring框架數據訪問

數據訪問/集成容器包括JDBC、ORM、OXM、JMS和Transactions模塊。

  1. JDBC提供了對JDBC的抽象層,消除了開發人員手動註冊與連接到數據庫相關的單調代碼的需要。
  2. Spring ORM提供了與Hibernate、JDO等流行ORM的集成,這些是JPA的實現。
  3. OXM 模組負責連結物件/XML – XMLBeans、JAXB 等。
  4. JMS(Java Messaging Service)模組負責創建、發送和接收消息。
  5. Transactions 支持實現特定方法和 POJO 的事務管理。

其他模組

Spring 還包括一些其他重要的模組,如 AOP、Aspects、Instrumentation、Messaging 和 Test。

  1. AOP 實現面向切面編程,並允許使用整個 AOP 的功能。
  2. Aspects 模組提供了與 AspectJ 的集成,它也是一個強大的 AOP 框架。
  3. Instrumentation 負責支援用於服務器應用程序的類儀器化和類載入器。
  4. Messaging 模組提供了 STOMP 支援。
  5. 最後,Test 模組提供使用 TestNG 或 JUnit 框架進行測試。

Spring 5 的功能

Spring 5 對 Spring 4 進行了大規模的更新。Spring 5 的一些重要功能包括:

  1. 支持 Java 8、Java 9、Java EE 7、Java EE 8、Servlet 4.0、Bean Validation 2.0 和 JPA 2.2。我很高興看到 Spring 正在努力跟上主要技術的最新版本。
  2. 通過新模組 – spring-jcl 改進了日誌記錄。
  3. 文件操作使用 NIO 2 流,因此性能得到了提升。
  4. 支持 Reactor 3.1 的 Flux 和 Mono,以及作為 Spring MVC 控制器方法返回值的 RxJava 1.3 和 2.1。
  5. 支持 Kotlin、Project Lombok、JSON 綁定 API 作為 Jackson 和 GSON 的替代方案。
  6. Spring WebFlux – Spring 開始使用 Reactive 技術。
  7. 支持 JUnit 5
  8. 通過 Kotlin 實現的函數式編程支持。

您可以在我們的 GitHub 存儲庫 上查看 Spring 專案。

參考資料:Spring 官方網站Spring 參考文檔

Source:
https://www.digitalocean.com/community/tutorials/spring-framework