grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,Grails的出现,使得在一个以Java为中心的环境中实现同等生产力的想法成为可能。
grails_grails -简介
Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,从而为大家带来一套能实现超高生产力的一站式框架。Ruby on Rails开创了将一门强大的编程语言和一个坚持己见、提倡用通情达理的默认设置代替复杂配置的框架进行创造性结合的先河。然而,还有许多组织并没有做好 从Java的安全保护伞下走出的准备,也没有打算放弃他们目前在Java上的投入。而Grails的出现,使得在一个以Java为中心的环境中实现同等生 产力的想法成为可能。
grails_grails -插件系统
grails的插件系统也是其亮点之一。首先,和rails,django等web框架类似,基于微内核的思想,插件(可重用模块)是框架的一等公民。grails除了核心模块以外的功能几乎都是通过插件方式实现的。实际上,一个grails插件和一个grails应用基本是完全一样的,同样可以使用grails run-app命令来运行。区别仅在于一个插件的根目录下需要提供一个fooplugin.groovy文件,提供插件的一些描述信息。grails插件基本可以做任何事情,grails社区已经提供了各式各样的插件,发布在grails官方插件源上。查看现有的官方插件,可以执行下面的命令:
grails list-plugins
安装插件可以执行以下命令:
grails install-plugin 插件名或插件路径
卸载插件可以执行以下命令:
grails uninstall-plugin 插件名或者插件路径
grails_grails -特点
如今的Java Web开发对于需求来说已经变得过于复杂。当今众多Java领域的Web开发框架不仅使用复杂,而且并没有很好的遵循Don’t Repeat Yourself(DRY)原则。像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和Hibernate等Java已有的技术之上的。Grails是一个full-stack框架,它借助于核心技术与相关的插件(plug-in)来解决Web开发中方方面面的问题,其中包括: 易于使用的基于Hibernate的对象-关系映射(ORM)层 称为Groovy Server Pages (GSP)的表现层技术 基于Spring MVC的控制器层 构建于Gant 上的命令行脚本运行环境 内置Jetty服务器,不用重新启动服务器就可以进行重新加载 利用内置的Spring 容器实现依赖注入 基于Spring的MessageSource核心概念,提供了对国际化(i18n)的支持 基于Spring事务抽象概念,实现事务服务层 借助于功能强大的Groovy动态语言和领域特定语言(Domain Specific Language,DSL),以上那些特性变得非常易用。grails_grails -Hello World示例
是时一个被用烂了而又经典的例子,在创建应用程序之前,先熟悉一下grails命令的使用(确保grails环境已配置好)。grails command name
现在我们为了创建一个Grails应用,需要输入的命令是create-app
grails create-app helloworld
这样就在当前目录下创建了一个名为helloworld(即我们的应用程序名)的文件夹,在这个文件夹中包含了我们这个项目的整个文件目录,可以使用如下命令进入这个目录中查看:
cd helloworld
为了完成这个经典的Hello World示例,我们需要运行create-controller命令,您先进入CMD命令行并执行:
grails create-controller hello
运行该命令后会在grails-app/controller目录下创建一个名为HelloController.groovy的控制器 控制器主要用来完成对Web请求的处理,我们稍微修改一下控制器的内容,使它能够在页面上输出"Hello World!"的字样,代码如下:
class HelloController { def world = { render "Hello World!" }} 现在控制器已经完成了,接下来要使用run-app来启动内置的jetty服务器运行刚刚创建的helloworld程序
grails run-app运行后会在8080端口(默认,可以使用-Dserver.port来指定端口)启动服务器,然后在浏览器中输入http://localhost:8080/helloworld来启动应用程序.