spring背后的故事?
Spring的締造者Rod Johnson。這位仁兄很牛,出生于澳大利亞,畢業于悉尼大學計算機系。到這還是平平無奇,但是他還有另一個身份,音樂學的博士。因為自己愛好音樂,便攻讀了音樂學的博士。果然編程的極致是藝術,而藝術相通的。
一本名為Expert one-on-one J2EE Development without EJB的書。在本書中,他提出了一種基于普通Java類(POJO)和依賴注入的簡單解決方案。他編寫了超過30,000行基礎設施代碼,其中包括許多可重用的Java接口和用于開發應用程序的類。
還沒有讀過的小伙伴建議精讀一下,雖然距今年代久遠,但其中不乏J2EE, 架構等經典之作,更是Spring整體框架的設計之源,包括后續的IoC思想之由來等。Rod隨后創辦Interface21, 開創Spring框架,而之后的Spring如日中天,無需多言。筆者曾戲稱:
"In the real world, J2EE ONLY define Interface, Spring will implement".
而Rod在Java領域的影響已經遠遠超越了Spring本身的范疇。
2003年2月左右,Rod,Juergen和Yann開始合作開展Spring項目。給出了“Spring”這個名稱,因為它意味著在傳統J2EE的“Winter”之后重新開始。
Spring之前的歷史
在Spring框架沒有開發出來時,Java EE是以Sun公司(已經被Oracle公司收購,不復存在)所制定的EJB(Enterprise Java Bean)作為標準的。
在“遙遠”的EJB年代,開發一個EJB需要大量的接口和配置文件,直至EJB 2.0的年代,開發一個EJB還需要配置兩個文件,其結果就是配置的工作量比開發的工作量還要大。
其次EJB是運行在EJB容器中的,而Sun公司定義的JSP和Servlet卻是運行在Web容器中的,于是你可以想象得到,你需要使用Web容器去調用EJB容器的服務。
這就意味著存在以下的弊端:需要增加調用的配置文件才能讓Web容器調用EJB容器;與此同時需要開發兩個容器,非常多的配置內容和煩瑣的規范導致開發效率十分低下,這非常讓當時的開發者詬病;對于Web容器調用EJB容器的服務這種模式,注定了需要通過網絡傳遞,造成性能不佳;對于測試人員