Spring 教程
Spring 框架是一個開源的 java 平臺,它為容易而快速的開發出耐用的 Java 應用程序提供了全面的基礎設施。
Spring 框架最初是由 Rod Johnson 編寫的,并且 2003 年 6 月首次在 Apache 2.0 許可下發布。
本教程是基于在 2015 年 3 月發布的 Spring 框架 4.1.6 版本編寫的。
適用人群
本教程是為需要詳細了解 Spring 框架的體系結構和實際應用的 Java 程序員設計的。本教程將帶你達到中級的專業知識水平,而你可以將自己提升至更高層次的專業知識水平。
學習前提
在進行本教程之前,你應該對 Java 編程語言有一個很好的了解。對 Eclipse IDE 的基本了解也是必須的,因為所有的示例都是使用 Eclipse IDE 進行編譯的。
概述
Spring 是最受歡迎的企業級 Java 應用程序開發框架。數以百萬的來自世界各地的開發人員使用 Spring 框架來創建好性能、易于測試、可重用的代碼。
Spring 框架是一個開源的 Java 平臺,它最初是由 Rod Johnson 編寫的,并且 2003 年 6 月首次在 Apache 2.0 許可下發布。
當談論到大小和透明度時, Spring 是輕量級的。 Spring 框架的基礎版本是在 2 MB 左右的。
Spring 框架的核心特性可以用于開發任何 Java 應用程序,但是在 Java EE 平臺上構建 web 應用程序是需要擴展的。 Spring 框架的目標是使 J2EE 開發變得更容易使用,通過啟用基于 POJO 編程模型來促進良好的編程實踐。
使用 Spring 框架的好處
下面列出的是使用 Spring 框架主要的好處:
- Spring 可以使開發人員使用 POJOs 開發企業級的應用程序。只使用 POJOs 的好處是你不需要一個 EJB 容器產品,比如一個應用程序服務器,但是你可以選擇使用一個健壯的 servlet 容器,比如 Tomcat 或者一些商業產品。
- Spring 在一個單元模式中是有組織的。即使包和類的數量非常大,你必須并且只需要但是你需要的,而忽略剩余的那部分。
- Spring 不會讓你白費力氣坐重復工作,它真正的利用了一些現有的技術,像幾個 ORM 框架、日志框架、JEE、Quartz 和 JDK 計時器,其他視圖技術。
- 測試一個用 Spring 編寫的應用程序很容易,因為 environment-dependent 代碼被放進了這個框架中。此外,通過使用 JavaBean-style POJOs,它在使用依賴注入注入測試數據時變得更容易。
- Spring 的 web 框架是一個設計良好的 web MVC 框架,它為 web 框架,比如 Structs 或者其他工程上的或者很少受歡迎的 web 框架,提供了一個很好的供替代的選擇。
- 為將特定技術的異常(例如,由 JDBC、Hibernate,或者 JDO 拋出的異常)翻譯成一致的, Spring 提供了一個方便的 API,而這些都是未經檢驗的異常。
- 輕量級的 IOC 容器往往是輕量級的,例如,特別是當與 EJB 容器相比的時候。這有利于在內存和 CPU 資源有限的計算機上開發和部署應用程序。
- Spring 提供了一個一致的事務管理界面,該界面可以縮小成一個本地事務(例如,使用一個單一的數據庫)和擴展成一個全局事務(例如,使用 JTA)。
依賴注入(DI)
Spring 最認同的技術是控制反轉的**依賴注入(DI)**模式??刂品崔D(IoC)是一個通用的概念,它可以用許多不同的方式去表達,依賴注入僅僅是控制反轉的一個具體的例子。
當編寫一個復雜的 Java 應用程序時,應用程序類應該盡可能的獨立于其他的 Java 類來增加這些類可重用額可能性,當進行單元測試時,可以使它們獨立于其他類進行測試。依賴注入(或者有時被稱為配線)有助于將這些類粘合在一起,并且在同一時間讓它們保持獨立。
到底什么是依賴注入?讓我們將這兩個詞分開來看一看。這里將依賴關系部分轉化為兩個類之間的關聯。例如,類 A 依賴于類 B?,F在,讓我們看一看第二部分,注入。所有這一切都意味著類 B 將通過 IoC 被注入到類 A 中。
依賴注入可以以向構造函數傳遞參數的方式發生,或者通過使用 setter 方法 post-construction。由于依賴注入是 Spring 框架的核心部分,所以我將在一個單獨的章節中利用很好的例子去解釋這一概念。
面向方面的程序設計(AOP):
Spring 框架的一個關鍵組件是**面向方面的程序設計(AOP)**框架。一個程序中跨越多個點的功能被稱為**橫切關注點**,這些橫切關注點在概念上獨立于應用程序的業務邏輯。有各種各樣常見的很好的關于方面的例子,比如日志記錄、聲明性事務、安全性,和緩存等等。
在 OOP 中模塊化的關鍵單元是類,而在 AOP 中模塊化的關鍵單元是方面。AOP 幫助你將橫切關注點從它們所影響的對象中分離出來,然而依賴注入幫助你將你的應用程序對象從彼此中分離出來。
Spring 框架的 AOP 模塊提供了面向方面的程序設計實現,允許你定義攔截器方法和切入點,可以實現將應該被分開的代碼干凈的分開功能。我將在一個獨立的章節中討論更多關于 Spring AOP 的概念。
原文出處:http://wiki.jikexueyuan.com/project/spring/
新聞熱點
疑難解答