grails 優勢:前端
Grails做爲JEE世界的Rails,把這些最前沿的設計理念帶入已顯得陳舊的JEE社區,以及由此帶來的優秀的開發效率。程序員
Grails中的DRY主要提如今URL映射定義上(URLMappings.groovy)。在 URLMappings.groovy中定義了應用的各個URL之後,經過使用Grails預約義的動態Controller方法和GSP標籤,開發者就 沒必要再把程序URL硬編碼在各處。spring
在約定優於配置方面,Grails和Rails很是類似。所謂約定優於配置,就是按照框架約定的方式來組織資源,就能夠免去任何額外的配置。好比 Grails的自定義標籤,存放在應用目錄下的grails-app/taglib
路徑下,並以XXXTagLib.groovy
的方式命名,就能無需任何配置就能夠在GSP裏使用這些標籤庫了。另外還有Service類,Job類,包括整個Grails應用的目錄結構,都是約定因爲配置原則的體現。在這 些方面JEE開發者必定會爲擺脫各類繁瑣的配置感到異常興奮,而且實實在在的節約不少開發時間編程
經過運行在JVM之上,Grails擁有一個通過多年開發,已經很是成熟,業界標準級別的運行環境。JVM的穩定性和最新版本的性能都已經至關成熟。相比 最直接的比較對象Rails,Grails在運行環境性能上的優點是比較明顯的。另外,已有的Java可重用組件基本均可以直接使用於Grails,無疑 也是Grails的一個明顯優點服務器
對Grails來講,Groovy是其可以實現靈活多變的快速開發,區別於其餘運行於JVM之上的Web框架的核心技術。app
Groovy的動態特性是其最大亮點,在這方面幾乎不輸於Ruby等其餘熱門的動態語言。meta-programming,closure等等熱門的動 態語言特性在Groovy中都有很好的實現。並且,Groovy程序可以編譯爲JVM字節碼的.class文件,直接運行在JVM上,Groovy程序的 性能可以獲得必定的幫助。Groovy可以和Java混合編寫,混合編譯,使得Java程序員能不用浪費本身在Java語言上的大量投入,更輕鬆快捷地進 入Groovy的世界。使用Groovy編程,相比使用Java來講快速輕鬆得多,對爲數衆多的Java程序員很有吸引力框架
Grails的插件系統也是其亮點之一。首先,和Rails,Django等Web框架相似,基於微內核的思想,插件(可重用模塊)是框架的一等公民。 Grails除了核心模塊之外的功能幾乎都是經過插件方式實現的。實際上,一個Grails插件和一個Grails應用基本是徹底同樣的,一樣可使用grails run-app
命令來運行。區別僅在於一個插件的根目錄下須要提供一個FooPlugin.groovy
文件,提供插件的一些描述信息編程語言
Grails前端開發使用的是GSP(Grails Server Pages),開發者可使用Grails特定的模板語法編寫gsp動態頁面,而且能夠直接使用Groovy腳本或是各類預約義和自定義的標籤庫 (taglib)。這麼看起來和JSP區別不大,而實際上,Grails帶給開發者的是遠比名字上的區別大得多的開發效率上的進步。性能
grails 缺點編碼
Grails使用多種已有的成熟開源JEE組件,一樣是一把雙刃劍。多種組件整合在一塊兒,出現整合方面的問題的話調試修改都會比較吃力
這多是Grails最關鍵的隱藏的弱點。一個開源項目的成功與否很大程度上取決於其社區。Rails/Ruby,Django/Python,包括 PHP都屬於現今最好的開源社區,活躍的社區對開源項目的成長起到巨大的做用。可是Grails的社區至今仍是至關小衆,在人數和質量上都沒法和以上三大 社區相比。一個不成熟的社區帶來的一個明顯問題就是Grails項目的開發進度比較慢,相關文檔和資料缺少