Spring 框架可以說是 Java 開發(fā)人員使用的最流行的應(yīng)用程序開發(fā)框架之一幽邓。它目前由大量提供一系列服務(wù)的模塊組成。包括模塊容器撤蟆,為構(gòu)建橫切關(guān)注點(diǎn)提供支持的面向切面編程(AOP)奕塑,安全框架,數(shù)據(jù)存取框架家肯,Web 應(yīng)用框架和用于模塊測試提供支持的類龄砰。Spring 框架的所有組件都通過依賴注入粘在一起。依賴注入(也稱為控制反轉(zhuǎn))使設(shè)計和測試松散耦合的軟件模塊變得更容易息楔。
起點(diǎn)
2002 年 10 月寝贡,Rod Johnson 撰寫了一本名為 Expert One-on-One J2EE 設(shè)計和開發(fā)的書扒披。本書由 Wrox出版值依,介紹了當(dāng)時 Java 企業(yè)應(yīng)用程序開發(fā)的情況,并指出了 Java EE 和 EJB 組件框架中的存在的一些主要缺陷碟案。在這本書中愿险,他提出了一個基于普通 Java 類和依賴注入的更簡單的解決方案。
在書中,他展示了如何在不使用 EJB 的情況下構(gòu)建高質(zhì)量辆亏,可擴(kuò)展的在線座位預(yù)留系統(tǒng)风秤。為了構(gòu)建應(yīng)用程序,他編寫了超過 30,000 行的基礎(chǔ)結(jié)構(gòu)代碼扮叨。包含許多可重用的 Java 接口和類缤弦,如 ApplicationContext和BeanFactory。由于java接口是依賴注入的基本構(gòu)建塊彻磁,因此他將這些類的根包命名為com.interface21碍沐。
一對一的 J2EE 設(shè)計和開發(fā)一炮而紅。本書免費(fèi)提供的大部分基礎(chǔ)架構(gòu)代碼都是高度可重用的衷蜓。即使在 15 年后累提,本書及其原則仍然與構(gòu)建高質(zhì)量的 Java Web 應(yīng)用程序相關(guān)。
Spring 誕生
在本書發(fā)布后不久磁浇,開發(fā)者 Juergen Hoeller 和 Yann Caroff 說服 Rod Johnson 創(chuàng)建一個基于基礎(chǔ)結(jié)構(gòu)代碼的開源項(xiàng)目斋陪。Rod,Juergen 和 Yann 于 2003 年 2 月左右開始合作開發(fā)該項(xiàng)目 置吓。Yann 為新框架創(chuàng)造了“Spring”的名字无虚。據(jù) Rod 介紹,Spring 是傳統(tǒng) J2EE 的新開始交洗。
2006 年 10 月骑科,Spring 2.0 在 Apache 2.0 許可下發(fā)布。2004 年 3 月构拳,1.0 版發(fā)布咆爽。有趣的是,在1.0發(fā)布之前置森,spring 就被開發(fā)人員廣泛采用斗埂。2004 年 8 月,Rod Johnson凫海,Juergen Hoeller呛凶,Keith Donald 和Colin Sampaleanu 共同創(chuàng)立了一家專注于 Spring 咨詢,培訓(xùn)和支持的公司 interface21行贪。
Yann Caroff 在早期離開了團(tuán)隊漾稀,Rod Johnson 在 2012 年離開,Juergen Hoeller 仍然是 Spring 開發(fā)團(tuán)隊的積極成員建瘫。
Spring 框架的快速增長
自 2004 年 1.0 版本發(fā)布以來崭捍,Spring 框架迅速發(fā)展。Spring 2.0 于 2006 年 10 月發(fā)布啰脚,到那時殷蛇,Spring的下載量超過了 100 萬。Spring 2.0 具有可擴(kuò)展的 XML 配置功能,用于簡化 XML 配置粒梦,支持 Java 5亮航,額外的 IoC 容器擴(kuò)展點(diǎn),支持動態(tài)語言匀们。
在 Rod 領(lǐng)導(dǎo)下管理 Interface21 項(xiàng)目于 2007 年 11 月更名為 SpringSource缴淋。同時發(fā)布了 Spring 2.5。Spring 2.5 中的主要新功能包括支持 Java 6 / Java EE 5泄朴,支持注釋配置宴猾,classpath 中的組件自動檢測和兼容 OSGi 的 bundle。
2007 年叼旋,SpringSource 從基準(zhǔn)資本獲得了 A 輪融資(1000萬美元)仇哆。SpringSource 在此期間收購了多家公司,如Hyperic夫植,G2One 等讹剔。2009年8月,SpringSource 以 4.2 億美元被 VMWare 收購详民。SpringSource 在幾周內(nèi)收購了云代工廠延欠,這是一家云 PaaS 提供商。2015 年沈跨,云代工廠轉(zhuǎn)型成了非營利云代工廠由捎。
2009 年 12 月,Spring 3.0 發(fā)布饿凛。Spring 3.0 具有許多重要特性狞玛,如重組模塊系統(tǒng),支持 Spring 表達(dá)式語言涧窒,基于 Java 的 bean 配置(JavaConfig)心肪,支持嵌入式數(shù)據(jù)庫(如 HSQL,H2 和 Derby)纠吴,模型驗(yàn)證/ REST 支持和對 Java EE 的支持硬鞍。
2011 年和 2012 年發(fā)布了許多 3.x 系列的小版本。2012 年 7 月戴已,Rod Johnson 離開了團(tuán)隊固该。2013 年 4月,VMware 和 EMC 通過 GE 投資創(chuàng)建了一家名為 Pivotal 的合資企業(yè)糖儡。所有的 Spring 應(yīng)用項(xiàng)目都轉(zhuǎn)移到了 Pivotal伐坏。
2013 年 12 月,Pivotal 宣布發(fā)布 Spring 框架 4.0休玩。Spring 4.0 是 Spring 框架的一大進(jìn)步著淆,它包含了對Java 8 的全面支持,更高的第三方庫依賴性(groovy 1.8+拴疤,ehcache 2.1+永部,hibernate 3.6+等),Java EE 7 支持呐矾,groovy DSL for bean 定義苔埋,對 websockets 的支持以及對泛型類型的支持作為注入 bean 的限定符。