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项目的开发进度比较慢,相关文档和资料缺少