1. 程式人生 > >week 6 Spring history and philosophy

week 6 Spring history and philosophy

sam int interface ejb framework actor derby 部分 ron

一、前言

Spring 框架可以說是 Java 開發人員使用的最流行的應用程序開發框架之一。它目前由大量提供一系列服務的模塊組成。包括模塊容器,為構建橫切關註點提供支持的面向切面編程(AOP),安全框架,數據存取框架,Web 應用框架和用於模塊測試提供支持的類。Spring 框架的所有組件都通過依賴註入粘在一起。依賴註入(也稱為控制反轉)使設計和測試松散耦合的軟件模塊變得更容易。

多年來 Spring 框架已變得足夠成熟。幾乎所有 Java 企業應用需要用到的基礎組件都可以在 Spring 框架中找到。但在一個新應用中將所有需要的 Spring 組件整合並配置好並不容易。這包括在 gradle/maven 中設置依賴庫,使用 xml、註解或 java 代碼配置需要的 Spring Bean。Spring 開發者意識到這裏的絕大多數工作是可以可以自動化的,Spring Boot 出現了!

(1) 春天來了—— Spring 來了!

Spring 在起源可以回溯到 Rod Johnson 編寫的“ Expert One-to-One J2EE Design and Development ”一書 (Wrox , 2002) 。在這本書中, Rod 展示了他的 interface21 框架,他為自己的應用編寫了這一框架。這一框架被發布到開源世界後,組成了現在我們所知的 Spring 框架的基礎。

Spring 在早期的 beta 和發布備選版本階段進行得很迅速,第一個正式版本 1.0 在 2004 年 3 月 24 日 發布。

官方: http://www.springframework.org

(2)What Is Spring(Spring 是什麽 ) ?

或許解釋清楚 Spring 技術到底是什麽會很困難。通常, Spring 是指一個用於構造 JAVA 應用程序的輕量級框架,但這句話包含兩個有趣的地方。首先,你可以采用 Spring 來構造任何程序,這一 Apache Struts 這樣的框架不同,你不限定於只編寫 WEB 應用。其次,以上解釋中的“輕量級”並不意味著類數量很少,或者發行包大小很小,實際上,它指的是 Spring 哲學原理的總稱——那就是最少的侵入。 Spring 是輕量級的,意味著你只需對你的程序代碼做很少改動 ( 假若有的話 ) ,而獲得 Spring 核心帶來的好處,你也可以在任何時候選擇拋棄 Spring ,你會發現這實在很容易。註意,上面這句話只針對 Spring 核心本身——很多附加的 Spring 組件,比如數據訪問,需要與 Spring 框架有相對緊密得多的耦合關系。但是,這些耦合帶來的好處顯而易見。

Spring 是一個開源框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發提供集成的框架。

(3)Spring 的體系結構

Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。 Spring 模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式

Spring 框架圖:技術分享圖片

二、關於Soring歷史

起點

2002 年 10 月,Rod Johnson 撰寫了一本名為 Expert One-on-One J2EE 設計和開發的書。本書由 Wrox出版,介紹了當時 Java 企業應用程序開發的情況,並指出了 Java EE 和 EJB 組件框架中的存在的一些主要缺陷。在這本書中,他提出了一個基於普通 Java 類和依賴註入的更簡單的解決方案。

在書中,他展示了如何在不使用 EJB 的情況下構建高質量,可擴展的在線座位預留系統。為了構建應用程序,他編寫了超過 30,000 行的基礎結構代碼。包含許多可重用的 Java 接口和類,如 ApplicationContext和BeanFactory。由於java接口是依賴註入的基本構建塊,因此他將這些類的根包命名為com.interface21。

一對一的 J2EE 設計和開發一炮而紅。本書免費提供的大部分基礎架構代碼都是高度可重用的。即使在 15 年後,本書及其原則仍然與構建高質量的 Java Web 應用程序相關。

Spring 誕生

在本書發布後不久,開發者 Juergen Hoeller 和 Yann Caroff 說服 Rod Johnson 創建一個基於基礎結構代碼的開源項目。Rod,Juergen 和 Yann 於 2003 年 2 月左右開始合作開發該項目 。Yann 為新框架創造了“Spring”的名字。據 Rod 介紹,Spring 是傳統 J2EE 的新開始。

200 年 6 月,Spring 2.0 在 Apache 2.0 許可下發布。2004 年 3 月,1.0 版發布。有趣的是,在1.0發布之前,spring 就被開發人員廣泛采用。2004 年 8 月,Rod Johnson,Juergen Hoeller,Keith Donald 和Colin Sampaleanu 共同創立了一家專註於 Spring 咨詢,培訓和支持的公司 interface21。

Yann Caroff 在早期離開了團隊,Rod Johnson 在 2012 年離開,Juergen Hoeller 仍然是 Spring 開發團隊的積極成員。

Spring 框架的快速增長

自 2004 年 1.0 版本發布以來,Spring 框架迅速發展。Spring 2.0 於 2006 年 10 月發布,到那時,Spring的下載量超過了 100 萬。Spring 2.0 具有可擴展的 XML 配置功能,用於簡化 XML 配置,支持 Java 5,額外的 IoC 容器擴展點,支持動態語言。

在 Rod 領導下管理 Interface21 項目於 2007 年 11 月更名為 SpringSource。同時發布了 Spring 2.5。Spring 2.5 中的主要新功能包括支持 Java 6 / Java EE 5,支持註釋配置,classpath 中的組件自動檢測和兼容 OSGi 的 bundle。

2007 年,SpringSource 從基準資本獲得了 A 輪融資(1000萬美元)。SpringSource 在此期間收購了多家公司,如Hyperic,G2One 等。2009年8月,SpringSource 以 4.2 億美元被 VMWare 收購。SpringSource 在幾周內收購了雲代工廠,這是一家雲 PaaS 提供商。2015 年,雲代工廠轉型成了非營利雲代工廠。

2009 年 12 月,Spring 3.0 發布。Spring 3.0 具有許多重要特性,如重組模塊系統,支持 Spring 表達式語言,基於 Java 的 bean 配置(JavaConfig),支持嵌入式數據庫(如 HSQL,H2 和 Derby),模型驗證/ REST 支持和對 Java EE 的支持。

2011 年和 2012 年發布了許多 3.x 系列的小版本。2012 年 7 月,Rod Johnson 離開了團隊。2013 年 4月,VMware 和 EMC 通過 GE 投資創建了一家名為 Pivotal 的合資企業。所有的 Spring 應用項目都轉移到了 Pivotal。

2013 年 12 月,Pivotal 宣布發布 Spring 框架 4.0。Spring 4.0 是 Spring 框架的一大進步,它包含了對Java 8 的全面支持,更高的第三方庫依賴性(groovy 1.8+,ehcache 2.1+,hibernate 3.6+等),Java EE 7 支持,groovy DSL for bean 定義,對 websockets 的支持以及對泛型類型的支持作為註入 bean 的限定符。

2014 年至 2017 年期間發布了許多 Spring 框架 4.xx 系列版本。Spring 4.3.7 於 2017 年 3 月發布。Spring 4.3.8 於 2017 年 4 月發布,並成為 4.x 系列中的最後一個。Spring 框架的下一個延續的主要版本是在 5.0 版本展開。

Spring 時間線圖表

技術分享圖片

week 6 Spring history and philosophy