
- Spring核心基礎
- Spring - 首頁
- Spring - 概述
- Spring - 架構
- Spring - 環境設定
- Spring - HelloWorld示例
- Spring - IoC容器
- Spring - Bean定義
- Spring - Bean作用域
- Spring - Bean生命週期
- Spring - Bean後處理器
- Spring - Bean定義繼承
- Spring - 依賴注入
- Spring - 注入內部Bean
- Spring - 注入集合
- Spring - Bean自動裝配
- 基於註解的配置
- Spring - 基於Java的配置
- Spring - Spring中的事件處理
- Spring - Spring中的自定義事件
- Spring - Spring框架中的AOP
- Spring - JDBC框架
- Spring - 事務管理
- Spring - Web MVC框架
- Spring - 使用Log4J進行日誌記錄
- Spring問答
- Spring - 問答
- Spring有用資源
- Spring - 快速指南
- Spring - 有用資源
- Spring - 討論
Spring框架 - 概述
Spring是企業級Java應用開發中最流行的框架。全球數百萬開發者使用Spring框架來建立高效能、易於測試和可重用的程式碼。
Spring框架是一個開源的Java平臺。它最初由Rod Johnson編寫,並於2003年6月首次在Apache 2.0許可下發布。
Spring在體積和透明度方面都很輕量級。Spring框架的基本版本大約2MB。
Spring框架的核心功能可用於開發任何Java應用程式,但它也提供了擴充套件功能,可以在Java EE平臺上構建Web應用程式。Spring框架旨在簡化J2EE開發,並透過啟用基於POJO的程式設計模型來促進良好的程式設計實踐。
使用Spring框架的優勢
以下是使用Spring框架的一些主要優勢:
Spring使開發人員能夠使用POJO開發企業級應用程式。僅使用POJO的好處是,您不需要EJB容器產品(例如應用伺服器),而是可以選擇僅使用健壯的Servlet容器(例如Tomcat)或某些商業產品。
Spring以模組化的方式組織。即使包和類的數量很多,您也只需要關注需要的那些,而忽略其餘的。
Spring並沒有重新發明輪子,而是真正利用了一些現有的技術,例如幾種ORM框架、日誌框架、JEE、Quartz和JDK計時器以及其他檢視技術。
使用Spring編寫的應用程式易於測試,因為依賴環境的程式碼已移入此框架。此外,透過使用JavaBean風格的POJO,使用依賴注入來注入測試資料變得更容易。
Spring的Web框架是一個設計良好的Web MVC框架,它為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框架的核心,我們將在單獨的章節中結合相關示例解釋此概念。
面向方面程式設計(AOP)
Spring的關鍵元件之一是面向方面程式設計(AOP)框架。跨越應用程式多個點的功能稱為橫切關注點,這些橫切關注點在概念上與應用程式的業務邏輯是分開的。方面的一些常見示例包括日誌記錄、宣告式事務、安全性、快取等。
OOP中的模組化關鍵單元是類,而在AOP中,模組化單元是方面。DI幫助您將應用程式物件彼此解耦,而AOP幫助您將橫切關注點與受其影響的物件解耦。
Spring框架的AOP模組提供了一個面向方面程式設計的實現,允許您定義方法攔截器和切點,以乾淨地解耦實現應分離的功能的程式碼。我們將在單獨的章節中詳細討論Spring AOP的概念。