序
2006年,一群Java領(lǐng)域的大師們紛紛轉(zhuǎn)向動語言,隨著類似RoR這些框架的宣傳及推廣,我們發(fā)現(xiàn)動態(tài)語言確實帶來了以前在Java的領(lǐng)域里面不曾有的思想、東西。使用傳統(tǒng)的Java MVC框架做開發(fā),相對于動態(tài)語言所表現(xiàn)出來的靈活、敏捷,感覺Java確實要笨重、麻煩、古板得多。當然,Java世界中所積蓄的能量以及各路武功流派的博大精深是動態(tài)語言無法比擬的,理智地分析起來會發(fā)現(xiàn)他們之間并不是完全的競爭關(guān)系,只是應(yīng)用的領(lǐng)域及場景不同而已。
也許你曾經(jīng)有一段時間覺得寫JavaEE應(yīng)用變得有點笨重、困難,我想那不是java的錯。人民大會堂里面國宴的烹飪工序,肯定比大街上賣的雞蛋餅要復(fù)雜得多。如果你在兩三年來一直使用Struts來編寫笨重、復(fù)雜的java web應(yīng)用程序,那我不得不想問一句:你為什么不嘗試一些Java開源界里面的其它一些新的技術(shù)框架呢?為什么Java Web應(yīng)用就不能像RoR那樣快速、靈活呢?為什么Rails能借鑒java的那么多優(yōu)秀思想,而java就不能借鑒RoR的一些新的思想及方法呢?我們正在尋找這些問題答案的路上。
最近一直忙于EasyJWeb的完善及改進工作,另外還忙于一些技術(shù)以外的瑣事。作為一個旨在讓Java Web應(yīng)用開發(fā)變得真正快速、簡單的MVC框架,作為一個由全國是中國人自己開發(fā)的開源框架。在EasyJWeb的正式版本即將發(fā)布之即,特總結(jié)了一下EasyJWeb1.0版本中引入的一些新特性及思想,歡迎大家參與進來討論。
EasyJWeb-1.0還未正式發(fā)布,你可以通過SVN庫來取到最新的源碼及示例,SVN庫位于:http://svn.easyjf.com/repository/easyjf/easyjweb/trunk。
EasyJWeb簡介
EasyJWeb是基于java技術(shù),用于企業(yè)級Java Web應(yīng)用程序快速開發(fā)的MVC框架。框架設(shè)計構(gòu)思來源于國內(nèi)眾多項目實踐,框架的設(shè)計及實現(xiàn)借鑒當前主要流行的開源Web框架,如Rails、Struts、JSF、Tapestry等,吸取其優(yōu)點及精華,是一個完全由來自的中國開源愛好者開發(fā),文檔及注釋全部為中文的開源框架。
EasyJWeb由主要由四個部分組成:
1、核心MVC。EasyJWeb的核心是一個基于模板技術(shù)實現(xiàn)的MVC框架;他能讓我們用非常簡潔的代碼寫基于Java的Web應(yīng)用。
2、容器及通用業(yè)務(wù)邏輯封裝。作為一個旨在讓基于Java的Web應(yīng)用程序開發(fā)變得直接、快速、簡易的框架,EasyJWeb提供了一個IoC容器,并對企業(yè)級應(yīng)用中的一些通用業(yè)務(wù)邏輯(如分頁、查詢、DAO等)進行了抽象及封裝,提供了一套可以直接操作、應(yīng)用企業(yè)資源的組件及API。
3、代碼生成引擎及工具。僅僅依靠一個靈活、簡易的MVC核心引擎還不能最大限度的提高開發(fā)速度,因此EasyJWeb還提供了一個靈活、易用的代碼生成引擎及工具,通過使用代碼生成引擎,可以快速完成基于JavaEE平臺的企業(yè)級應(yīng)用程序生成。如數(shù)據(jù)庫添刪改查(CRUD)代碼生成、自動頁面模版生成、自動配置文件管理等。
4、EasyJWeb插件體系,項目中的各種實用功能的擴展,可以靈活地通過基于插件的形式安裝到EasyJWeb中,提供各種針對性的功能。如ajax實用插件、代碼生成插件等。
EasyJWeb的特點:
1、快速開發(fā)支持
EasyJWeb是首要目標是實現(xiàn)基于JavaEE的Web應(yīng)用程序快速開發(fā)。通過EasyJWeb的核心MVC、通用業(yè)務(wù)邏輯抽象及封裝、代碼自動生成、插件體系等幾個部分有機組合,能實現(xiàn)企業(yè)級的Java Web應(yīng)用程序開發(fā)。
2、零配置及約定配置
通過配置可以讓程序變得更加的靈活、易維護及擴展,然而配置的濫用會造成維護配置文件過于麻煩。因此,EasyJWeb基于盡可能簡化配置的原則,實現(xiàn)了零配置支持,同時為了保證系統(tǒng)的靈活性及可擴展性,還提供了很多的約定配置支持。
3、優(yōu)雅的視圖支持,頁面及程序完全分離。
EasyJWeb提供了非常優(yōu)雅的視圖支持能力,不但實現(xiàn)了視圖頁面模板與程序邏輯的完全分離,克服了傳統(tǒng)jsp頁面難于維護的問題,而且還實現(xiàn)了對頁面純天然的支持能力,使得非常適用于企業(yè)級應(yīng)用中的頁面制作人員與程序的分工合作。
4、超級IoC容器
作為一個主要用于Java企業(yè)級應(yīng)用程序開發(fā)的框架,EasyJWeb實現(xiàn)了IoC容器,提供非常靈活的注入方式,并能支持Spring、Guice等異構(gòu)容器實現(xiàn)。
5、Ajax支持
EasyJWeb內(nèi)置了對遠程javascript腳本調(diào)用功能,可以使用javascript直接訪問服務(wù)端的業(yè)務(wù)組件。另外EasyJWeb通過使用prototype.js及其它一些來自開源社區(qū)ajax特效工具,提供了豐富的Ajax支持。