Spring框架的由來與發展

這是一個最好的時代,也是一個最壞的時代;這是一個智慧的年代,這是一個愚蠢的年代;這是一個信任的時期,這是一個懷疑的時期;這是一個光明的季節,這是一個黑暗的季節;這是希望之春,這是失望之冬;人們面前應有盡有,人們面前一無所有;人們正踏上天堂之路,人們正走向地獄之門。——《雙城記》狄更斯

Spring框架的由來與發展

Java從誕生之日到如今已經歷時了20多年。更多IT行業技術請鎖定公眾號"全階魔方"每天都有更新哦~它經歷過異軍突起、風靡全球的時代;它也有過讓人不滿、飽受詬病的時候;直到現在它仍然牢牢坐在全球開發者使用量第一的位置上。在這樣一段豐富多彩的歷史中,Java從開始受到質疑到再次走向高峰,Spring框架起到了非常重要的作用。

Java在最初10年輝煌後的痛點

Java從94年誕生之日起,藉助於當時它的 語法簡單、面向對象、跨平臺、安全健壯等特性 迅速得到業內歡迎,很快攀升到使用率No1的位置。基於Java實現的各種應用、各種服務、各種框架和第三方工具包開始出現爆炸性增長。雖然,這一方面代表了Java在行業內得到的肯定(當時已經是第一開發語言)與火熱,但另一方面也在不斷增加程序員開發的複雜度與時間成本、代碼的體量也越來越大,這就帶來了很多問題。其中最為突出的是如下幾個:

1. 在分層架構中,上層調用者與下層實現者之間形成代碼級關聯,這無疑增加了設計的耦合度;

2. 大部分第三方框架通過強迫使用者繼承指定父類或實現指定接口,從而導致應用與框架綁定死板,形成"侵入性"編程;

3. 散佈在應用各個模塊中的非功能性重複模塊,沒有得到充分且靈活的複用;

這些問題導致Java在做開發的時候(特別是Web開發)越發顯得臃腫繁瑣,將其進行"輕量化"成為業內的一致的呼聲。為解決這個問題,行內提出了各種各樣的解決方式,包括SUN公司也不斷在JavaEE平臺上做著各式各樣的改進、優化、推新,但最終歷史選擇了"Spring"。

Spring的出現

Spring 框架最開始的部分是由Rod Johnson於2000年為倫敦金融界提供獨立諮詢業務時寫出來的。在《Expert One-On-One J2EE Development Without EJB》一書中,他進一步拓展了他的代碼,以闡述"如何讓應用程序能以超出當時大眾所慣於接受的易用性和穩定性與J2EE平臺上的不同組件合作"的觀點。

Spring框架的由來與發展

一批自願拓展Spring框架的程序開發人員組成了團隊,2003年2月在Sourceforge上構建了一個項目。在Spring框架上工作了一年之後,這個團隊在2004年3月發佈了第一個版本(1.0)。這個版本之後,Spring框架在Java社區裡變得異常流行,當然這也要部分的歸功於它不錯的文檔功能和詳盡的參考文獻,特別是對於一個開源項目而言尤其如此。Spring框架的一個重要設計目標就是更容易地與已有的J2EE(現在稱之為JavaEE或JEE)標準和商用工具整合。 簡單說來,Spring在最初的目標中(至少Rod大叔一開始是這麼說的),並不是致力於打造又一個大而全的新框架。而是希望Spring框架就像一個大容器一樣,能夠快速方便地集成各種應用(牢記:不僅僅是Web應用,就算一個普通的Java應用也可以)中各種現有技術,對它們進行支持,讓開發人員在實現過程中感覺就像使用簡單JavaBean一樣,在必要的時候還能輕鬆完成同類框架和工具的替換。而Spring達到這一目標的兩大關鍵手段就是:控制反轉/依賴注入(IOC/DI),和麵向切面編程(AOP)。其中,IOC/DI是Spring最基本的底層;而AOP是Spring強大的亮點。它們也是我們一開始學習Spring的起點。

Spring的發展

在誕生之初,Spring就是為了簡化替代日益重量級的企業級Java技術。但隨著時間的推移,JavaEE自身也在不斷的演化,面向簡單JavaBean模型、依賴注入、面向切面也都逐漸融入,這無疑是受到了Spring成功的啟發。

在被模仿的同時,Spring並沒有停下腳步。它繼續在其它領域不斷髮展:移動開發,社交API集成、安全管理、NoSQL數據庫、雲計算和大數據等等都是它正在涉足和創新的領域,其前景更加廣闊,甚至已經形成與傳統的JavaEE平臺分庭抗禮之勢。

Spring框架的由來與發展

我們可以看到Spring已經打造出了一個自己專屬的Spring生態帝國(Spring全家桶)。在這裡,我們可以找到幾乎所有Web開發所需要的一切解決方案,所以Spring是每個Java程序員都必須要掌握學習的重點內容!


分享到:


相關文章: