「跨界(cross over)在汽車界已然成風,將轎車、SUV、跑車和MPV等多種不一樣元素融爲一體的混搭跨界車型,正在成爲汽車設計領域的新趨勢。從我的而言,當包容、多元的審美要求和物質要求愈來愈強烈時,跨界表明了一種新銳的生活態度與審美方式的融合。有人說,這是咱們心裏深處的渴望,也是咱們在短暫一輩子中儘可能多嘗試應用不一樣體驗的方式———駕駛跨界車,演繹着一種新穎的生活方式。」html
目前互聯網開始滲透到各行各業中,各互聯網之間的整合也是此起彼伏。大量整合、滲透互聯網如新浪和高德地圖,支付寶和基金,支付寶和快遞等的輕量型的跨界試水業務紛紛搶灘。如何來提供這種跨界業務形態的快速上線所需的開發效率和應對其所帶來的代碼膨脹,資源利用問題,Easyweb給出了一種解決方案,紮根業務平臺,將重用邏輯宿主化,結合外界業務的WEB API,利用腳本語言快捷的進行原型開發,迅速孵化出各類輕型app。在業務運行過程當中,許多極有可能被淘汰,剩下的開始逐步獨立成應用,Easyweb起到了一個孵化池的做用。java
Java web框架發展到如今已經經歷了十幾年的歷史,如turbine,struts,webwork,spring mvc,struts2,webx等等。互聯網的網站形態從一開始的web1.0如門戶網站到web2.0如微博;信息流動方式從一開始門戶到用戶的單向流動到用戶和用戶間的雙向流動;用戶體驗上從整頁刷新到局部刷新;從與展現緊密相連的動做性操做到可被重複使用的web API(web service ,rest);從PC瀏覽器的網頁接口到手機app的純數據化接口,變化是如此地翻天覆地。顯然的,這些變化推進了web框架的發展,如考慮到REST 服務支持,tomcat 6到tomcat7從只支持GET,POST方法到對GET,POST,DELETE,PUT,HEAD等多種方法的支持;與此同時,Jdk的每次發佈都會給web mvc框架帶來新的技術熱點,如spring3 mvc 的annotation 配置取代spring2 mvc原有的xml配置文件升級。現今跨界app也成了業界熱點之一。git
最近因爲業務須要學習了一個淘寶內部的框架,easyweb。Easyweb easy在什麼地方呢:github
一是開發效率高,上手easy.如語言簡練,好比寫一個判斷字符串非空,web
Java寫法:spring
1:
2: s!=null&&s.length>0
groovy 寫法:bootstrap
1: if(s)
另外則是熱部署,大型web項目規模動則幾百MB WAR,在其中做一次修改從新啓動一次須要幾分鐘時間。若是能進行熱部署,那麼大大提升了開發調試的效率。瀏覽器
開發效率高是腳本語言groovy給java web框架帶來的禮物。JDK7對腳本語言進一步加強,從JSR 223到JSR292增長了invoke dynamic類型,採用了bootstrap方法來動態綁定方法,並在綁定過以後能夠快速返回綁定方法,在性能上會獲得大幅提高。tomcat
二是處理的問題域及其處理方法easy,只取request的攔截和模板渲染,其餘統統無論。mvc
三是開發的程序都是業務easy的輕型app.這些輕型app特色大可能是共享依賴相同集合的jar和資源,業務上也比較輕量(幾個到幾十個頁面)。
easyweb總體結構:
1. easywebValve或相似的filter完成url的攔截,將某類url請求分發到easyweb的RequestProcessor;
2. 在RequestProcessor中初始化ThreadLocal變量context,將request,response,對應的app(app映射標識是url中的一部分,如/weibo/home.html映射到weibo app裏)放入context中;
3. groovyEngine根據params(請求中的參數),groovy files(根據url映射找到對應的groovy文件)進行腳本調用,生成obj;
4. VelocityEngine將obj屬性填充到vm模板(這個也由Url映射能夠獲得),生成html頁面返回到客戶端。
綜上所述,如easyweb框架同樣可利用WEB API和腳本語言快速拼接輕型app適應跨界需求是之後java web 框架發展的新趨勢之一。
參考資料:
2.New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine