作為EJB3.0的一部分,JPA是一個好東西。其簡單的配置方式及強大的默認配置支持,使其可以輕松自由的存在于輕量與重量之間,如果現(xiàn)在您的JavaEE項目,不管是選擇輕量級構架還是重量級構架,持久層使用JPA應當是企業(yè)級應用系統(tǒng)開發(fā)首選。除去標準因素,從技術特性上來說,當JPA吸引人之處主要在于他的簡易(easy)方面,通過java5的注解,使得我們對對象關系映射的描述更加的簡化,比如以前需要一大串xml才能描述的OneToMany、ManyToMany等關系,JPA中只通過簡單的一個@OneToMany或@ManyToMany即可搞定。JPA還提供了約定代替配置的方案,一種映射都有約定的方式,而且是一種實踐中總結出來的映射方式,只有在特定的時候才會去更改這些約定值。
Spring2.0發(fā)布半年多了,其中增加了很多非常實用的功能。比如AOP的加強,配置方式的簡化,JPA的支持,動態(tài)語言的支持等,集成了更多的功能。不管你的技術框架如何,只要你善于觀察及發(fā)現(xiàn),你都能從Spring2中找到很多通用問題的解決方案。Spring的支撐項目已經(jīng)很多,比如安全的acegi,spring web flow、spring web service等。在得到風險資金注入的interface21,相信以后還會給我們更多的實用東西。用Spring2.0來解決企業(yè)級應中的基礎服務(IOC、AOP、事務及實用功能封裝等)及業(yè)務邏輯層的問題,一段時間內仍然會是企業(yè)級應用中的首選。
持久層及中間層已經(jīng)解決,余下的就是表示層也就是MVC層的內容了。企業(yè)級應用中的一個特點,就是用戶界面非常的多,也比較復雜、變動的概念也是最大。當前的MVC層競爭是最為激烈的,最開始是基于請求轉發(fā)(代表Struts、Spring MVC、EasyJWeb)模型系列與基于組件模型系列(代表JSF、Tapestry、Wicket等),然后是以Ajax技術為核心的MVC系列框架(代表ZK、GWT等)跳出來橫插一腳。由于表示層易變性及開發(fā)人員的習慣等問題。導致MVC框架的競爭是如此慘烈,webwork已經(jīng)跟Struts抱成了一團,Struts2的推出證明了“Struts式”的程序即會慢慢退出競爭的舞臺。
因為MVC框架太亂,用戶需求的不確定性,所以一套符合我們文化特色及思維習慣的表現(xiàn)層基礎框架非常必要。在這里推薦的是我們自己開發(fā)的開源框架EasyJWeb,EasyJWeb是集合了以上的技術框架,提供IOC及容器集成、Ajax遠程角本調用、約定代替配置(零配置)、快速代碼生成等功能,使得其能與主流的JavaEE框架非常完美的集成。其強制頁面與代碼完成分離的模板式設計,更是使能適應企業(yè)級應用中專業(yè)化分工及協(xié)作開發(fā)的特點。
因此,JPA+Spring2+EasyJWeb這樣的技術構架,都專業(yè)地分別解決了企業(yè)級應用程序中的持久層、中間層及表示層的問題。而且這套構架能非常簡易、快速的、靈活的集成到一起。因此,是我們企業(yè)級應用開發(fā)中非常不錯的選擇。
最后,打點小廣告!當前EasyJWeb已經(jīng)應用到了很多大型的企業(yè)級應用程序開發(fā)中,并得到了國內一些軟件公司的支持,EasyJF開源也將在這一兩個月內發(fā)布1.0版本。從全世界開源領域來說,中國一直是被看作是“開源消費者”,雖然“世界是平”的,但由于很多因素存在,全世界范圍內又存在著太多的不平等。如果你愿意為國內的開源事業(yè)做貢獻,不甘于被別人給我們貼的“開源消費者”的標簽,那么就參與到開源中來吧,一起來實現(xiàn)我們的開源夢想。
(題后語:相比前面的JPA及Spring團隊,EasyJWeb的開發(fā)團隊就寒酸多了,一群來自中國的毛頭小孩松散式的組合,盡然想做一個能比Struts、比Spring MVC、比JSF還好用的MVC框架,沒有資金的支持,沒有大大牛的參與,在國內眾多“春迷”式技術精英的鄙視及謾罵中艱難的生存及發(fā)展著。)