天天看點

「Spring認證」Spring 架構概述

Spring 是最流行的企業 Java 應用程式開發架構。全球數以百萬計的開發人員使用 Spring Framework 來建立高性能、易于測試和可重用的代碼。

Spring 架構是一個開源的 Java 平台。它最初由 Rod Johnson 編寫,并于 2003 年 6 月在 Apache 2.0 許可下首次釋出。

在尺寸和透明度方面,Spring 是輕量級的。Spring 架構的基本版本大約為 2MB。

Spring Framework 的核心功能可用于開發任何 Java 應用程式,但有一些擴充可用于在 Java EE 平台之上建構 Web 應用程式。Spring 架構旨在通過啟用基于 POJO 的程式設計模型使 J2EE 開發更易于使用并促進良好的程式設計實踐。

使用 Spring 架構的好處

以下是使用 Spring Framework 的幾個巨大好處的清單 -

Spring 使開發人員能夠使用 POJO 開發企業級應用程式。僅使用 POJO 的好處是您不需要 EJB 容器産品(如應用程式伺服器),但您可以選擇僅使用健壯的 servlet 容器(如 Tomcat 或某些商業産品)。

Spring 以子產品化方式組織。盡管包和類的數量很多,但您隻需要擔心您需要的包和類,而忽略其餘的。

Spring 并沒有重新發明輪子,而是真正利用了一些現有技術,如幾個 ORM 架構、日志架構、JEE、Quartz 和 JDK 計時器以及其他視圖技術。

測試用 Spring 編寫的應用程式很簡單,因為依賴于環境的代碼被移到了這個架構中。此外,通過使用 JavaBeanstyle POJO,使用依賴注入來注入測試資料變得更加容易。

Spring 的 web 架構是一個精心設計的 web MVC 架構,它提供了一個很好的替代 web 架構,如 Struts 或其他過度設計或不太流行的 web 架構。

Spring 提供了一個友善的 API 來将特定于技術的異常(例如由 JDBC、Hibernate 或 JDO 抛出)轉換為一緻的、未經檢查的異常。

輕量級 IoC 容器往往是輕量級的,尤其是與 EJB 容器相比時。這有利于在記憶體和 CPU 資源有限的計算機上開發和部署應用程式。

Spring 提供了一個一緻的事務管理接口,可以縮小到本地事務(例如使用單個資料庫)和擴充到全局事務(例如使用 JTA)。

依賴注入 (DI)

Spring 最認同的技術是控制反轉的依賴注入 (DI)風格。該控制反轉(IOC)是一個籠統的概念,它可以在許多不同的方式來表達。依賴注入隻是控制反轉的一個具體例子。

在編寫複雜的 Java 應用程式時,應用程式類應盡可能獨立于其他 Java 類,以增加重用這些類的可能性,并在單元測試時獨立于其他類進行測試。依賴注入有助于将這些類粘合在一起,同時保持它們的獨立性。

究竟什麼是依賴注入?我們分别看一下這兩個詞。這裡的依賴部分轉化為兩個類之間的關聯。例如,A 類依賴于 B 類。現在,讓我們看看第二部分,注入。所有這些意味着,B 類将被 IoC 注入到 A 類中。

依賴注入可以通過将參數傳遞給構造函數的方式發生,也可以通過使用 setter 方法的後構造發生。由于依賴注入是 Spring Framework 的核心,我們将在單獨的章節中用相關示例解釋這個概念。

面向方面程式設計 (AOP)

Spring 的關鍵元件之一是面向方面的程式設計 (AOP)架構。跨越應用程式多個點的功能稱為橫切關注點,這些橫切關注點在概念上與應用程式的業務邏輯分離。方面有各種常見的好例子,包括日志記錄、聲明性事務、安全性、緩存等。

OOP 中子產品化的關鍵機關是類,而 AOP 中子產品化的機關是方面。DI 幫助您将應用程式對象彼此分離,而 AOP 幫助您将橫切關注點與它們影響的對象分離。

Spring Framework 的 AOP 子產品提供了一個面向方面的程式設計實作,允許您定義方法攔截器和切入點,以幹淨地解耦實作應該分離的功能的代碼。我們将在單獨的章節中讨論更多關于 Spring AOP 概念的内容。