該作品是PDF文件格式請下載 福昕PDF閱讀器
Webx是一套基于Java Servlet API的通用Web框架。它在Alibaba集團內(nèi)部被廣泛使用。從2010年底,向社會開放源碼。
Webx的歷史
• 2001年,阿里巴巴內(nèi)部開始使用Java Servlet作為WEB服務(wù)器端的技術(shù),以取代原先的Apache HTTPD server和mod_perl的組合。
• 2002年,選擇Jakarta Turbine作為WEB框架,并開始在此之上進行擴展。
• 2003年,經(jīng)過大約一年的擴展,框架開始成熟。我們私下稱這個經(jīng)過改進的Turbine框架為
Webx 1.0。
• 2004年,借著淘寶網(wǎng)的第一次改版,我們正式推出了Webx 2.0。由于Turbine開源項目發(fā)展
過于緩慢,我們不得不放棄它。Webx 2.0是從零開始完全重寫的,僅管它仍然延續(xù)了Turbine
的使用風(fēng)格。
• 2004年11月,Webx 2.0和Spring框架整合。
• 從那以后,Webx 2.0一直在進化,但沒有作根本性的改動。
• 2010年,Webx 3.0發(fā)布。Webx 3.0拋棄了Webx 2.0中過時的、從Turbine中發(fā)展而來的
Service框架,直接采用Spring作為其基礎(chǔ),并對Spring作了重大改進。Webx 3.0完全兼容
Webx 2.0的代碼,只需要修改配置文件就可完成升級。
• 2010年底,Webx 3.0開源。
為什么要用Webx而不是其它的開源框架?
現(xiàn)在有很多Java的Web框架可供選擇,并且它們也都是免費的。例如,• Struts - http://struts.apache.org/
• Webwork - http://www.opensymphony.com/webwork/
• Tapestry - http://tapestry.apache.org/
• Spring MVC - http://www.springsource.org/
• ……
以上框架都是非常優(yōu)秀的。說實話,如果阿里巴巴網(wǎng)站在2001年開始,就有這么多可選擇的
話,無論選擇哪一個都不會有問題。因為這些年來,所有的開源Web框架都在互相學(xué)習(xí)、并趨
于相似。Webx也不例外,它吸收了其它框架的很多想法。因此,當(dāng)你使用Webx的時候,你會
覺得在很多方面,它和其它開源的框架非常類似。
我并不是說所有的框架都一樣好,而是說只要假以時日,所有的框架在發(fā)展過程中,必然會積
聚好的方面,淘汰壞的方面,從而變得足夠好。從這個角度看,的確沒有特別明顯的理由來選擇
Webx,但也沒有明顯的理由不選擇Webx。
另一方面,由于每一種框架采用不同的設(shè)計,必然會有各自的優(yōu)勢。Webx也是如此 —— 它在
某些方面有一些獨到的設(shè)計,超越了同類框架。Webx有哪些優(yōu)勢呢?
開放和擴展性
• 對Spring的直接支持 —— Spring是當(dāng)今主流的輕量級框架。Webx 3.0和Spring MVC一樣,完全建立在Spring框架之上,故可運用Spring的所有特性。
• 擴展性 —— Webx 3.0對Spring做了擴展,使Spring Bean不再是“bean”,而是升級
成“組件”。一個組件可以擴展另一個組件,也可以被其它組件擴展。這種機制造就了Webx
的非常好的擴展性,且比未經(jīng)擴展的Spring更易使用。
• 開放性 —— Webx被設(shè)計成多個層次,層次間的分界線很清晰。每個層次都足夠開放和易于
擴展。你可以使用全部的Webx,也可以僅僅使用到Webx的任何一個層次。