i免费在线版本(非印刷免费在线版)了览本书更多信息请登弽本书癿官斱网站InfoQ中文站出品本书由InfoQ中文站免贶収放,如果您仅其他渠道获叏本书,请注册InfoQ中文站以支持作者和出版商,幵免贶下载更多InfoQ企业软件开収系列图书。本迷你书主页为入门指南第2版ScottDavis、JasonRudolph著胡键译iii本书的第一版是我的Grails入门书。在快速浏览完整本书之后,当时就刺激得我想把平常用的那些框架工具给扔到九霄云外。Grails的出现,作为当今Java社区最让人激动的事件之一,本书的第一版已经给出了充分的解释。从那之后,只要有机会,我就尝试着使用Groovy和Grails来解决问题。在GrailsGAE插件推出的时候,我甚至还编写了一个Groovy的WebConsole:GroovyLive(),它的独特之处在于,内置了一个交互式的Groovy初级教程,其形式受到了Ruby社区的TryRuby的影响。寻觅就此结束(Thesearchisover),这是Grails官方网站上的宣传语。其中固然有些噱头的成分,但并非夸大其词。MVC、ORM、拦截器、验证、事务、标签库、URLMapping、日志、i18n等这些日常开发中最常用到的特性,在使用Grails时都可以拿来就用,不必经过大量繁琐的配置和准备。还有测试,Grails提供了大量的基础设施来简化测试代码的编写,这无疑为贯彻TDD提供了有力的支持。要是仅限于以上特点,那Grails的能耐也就不过如此了。在当今的时代,一个框架如果不支持插件,它的生命力必然有限,最终会很快地被新秀取代。插件架构,这是Grails的一大特点,也正是这一特点使得Grails得以借助整个社区的力量来不断扩充完善,长久发展。目前,Grails的插件个数已经超过400,这对Grails的使用者来讲显然是一笔巨大的财富。本书第一版在InfoQ上发布距今已经过了快3年的时间,这期间Grails自身已经发生了翻天覆地的变化。想想看,当时书中所用到的版本还是Grails0.3.1,而此时Grails1.3RC2已经发布。按照InfoQ中文站的发布流程,估计Grails1.3正式版都已经可以下载了。如此巨大的差异当然值得专门写一本书,于是,有了第二版。在这一版中,使用的Grails版本是1.2。出于对Grails的热爱,在InfoQ英文站上看到这一版的预告后,我便迫不及待地向中文站负责文章和迷你书发布的刘申同学预约,同时在正式版出来的第一时间就在我们编辑的邮件组中夺过本书的翻译权。在此,还要感谢各位编辑的割爱。关于第二版的内容和优点,这里就不必多言了,基本延续了第一版的风格。这里只是提醒那些对Grails感兴趣、有意尝试的同学,多做多练才是用好它的王道。当然,还不要忘了查阅参考文档。从Grails的邮件列表来看,很多问题都可以归结为对文档的阅读理解不译者序iv够。这里,我也顺便做一个小广告。我在GroovyQ()上发布了Grails1.2的文档速读系列(),相当于参考文档的缩写,有兴趣的读者不妨前往一读。最后,感谢晁晓娟对本书的审校,同时也感谢我的家人对我工作的支持。如果您发现了译文中的错误和纰漏,请直接给我发邮件(jianhgreat@hotmail.com)或到InfoQ中文站进行交流。如果您对Groovy有兴趣,欢迎访问GroovyQ,这个专注于Groovy社区动态,分享Groovy开发经验的站点。胡键2010-5-1vScott的致谢(第2版)JasonRudolph在本书的第一版完成了一项杰出的工作。完全道出了我学习Grails的历程。这本书的快节奏--从不在任何主题上做过多的停留,但却涵盖了创建一个完整可运行应用所需了解的全部内容--同那些又臭又长一般有1000来页的技术书籍相比,无疑有一种让人如释重负般的舒爽。随着我和他这么多年彼此交情日深--一直以来我们都在同一会议上演讲,时不时还小酌几杯--我总是不厌其烦地问他同一个问题:你打算什么时候出《Grails入门指南》的第二版?伙计,你必须完成它……我成为这一版合著者的事实充分说明了Jason的业务头脑--永远不要对一个渴望并且给你买啤酒的人说不。多谢,Jason,感谢你让我能把你的宝贝带到Grails的摩登时代。同时也要感谢GraemeRocher、JeffBrown,以及核心Grails开发团队的其他成员。在如此短的时间内,从开源项目到成立如G2One这样的公司,再到被SpringSource收购(接着它又被VMWare收购了),其价值一定是难以置信--象codehaus.org上的邮件列表流量第一或是在一个月内达到90,000的下载量都不足以体现。你们的努力不只是搞出了一个Web框架,而且还建立了一个社区。干得漂亮,兄弟们。说到搭档,那些来自巡回会议的哥们不断地给予我启迪和增强我的信心。NealFord、StuartHalloway、VenkatSubramaniam、DavidGeary、AndyGlover、DavidBock、BrianGoetz、DavidHussman、TedNeward、MichaelNygard、MarkRichards、BrianSam-Bodden、NateShutta、KenSipe和BrianSletten--感谢深沉的夜晚、机场的同志友情,以及每个星期天的墨西哥式自助餐。在一个疯狂的世界里,唯有疯子才是正常人。(奥斯卡.王尔德)感谢FloydMarinescu、AlexandruPopescu、John-PaulGrabowski,以及InfoQ团队的其他成员,你们让本书的第二版成为了现实。最后,按惯例,感谢长期以来一直容忍我的妻子Kim。她是这样的一个人,一边会问你是不是该写另一本书了?,一边又会因为来年让它霸占了维持一个正常家庭生活的一切而非常后悔。同样也是她,还说出了这样的话:你是不是该把MacBookPro扔到一边,陪陪Christopher和Libby了?她似乎总是知道在合适的时候说合适的话。viJason的致谢(第1版)首先我要感谢GraemeRocher(Grails项目领导者,《TheDefinitiveGuidetoGrails》的作者)。感谢您审阅了这本书,并在一路上启发我深入Grails的内部工作原理。您细心审阅了本书,并提出了卓越的见解及宝贵建议令各个实例更加Groovy。我还要感谢VenkatSubramaniam(《PracticesofanAgileDeveloper》的合著者),在审阅此书过程中强调学习的体验及如何最好地把Grails介绍给读者。此外,您具有深刻见解的序言,能帮助开发人员愉快接受一个可带来许多好处并将敏捷发扬光大的框架。谢谢SteveRollins勤勉地在这本书中倾注心血,一一解决残留的问题,哪怕这意味着在几个星期里,正常工作时间外默默无闻的付出。您关注细节而不知疲倦,成果都清楚地反映在这本书上了。此外,我还要感谢JaredRichardson(《Shipit!APracticalGuidetoSuccessfulSoftwareProjects》的合著者),不仅感谢他审阅了本书,还要感谢他最早鼓励我写这本书。非常感谢在我写书过程中您给予的鼓励,以及给最后书稿的可贵观点。感谢FloydMarinescu(InfoQ.com的共同创始人之一,《EJBDesignPatterns》的作者),以及为出版此书作出努力的整个InfoQ团队,感谢你们在出版过程中的热情支持。最要感谢的是永远耐心、一直鼓励我的妻子Michelle,感谢你一路对我的支持。只有你(在一切事情上都)愿意承担远远超过你本应该承担的责任,我才有时间来做这件事情。你不但支持我完成了这本书,而且你的创造力、美感和在内容编辑上的建议,使本书比它原本的样子更好。vii目录译者序..........................................................................................................................................IIISCOTT的致谢(第二版)......................................................................................................................VJASON的致谢(第一版)......................................................................................................................VI1简介.........................................................................................................................................1例程学习...............................................................................................................................................1RACETRACK应用......................................................................................................................................12安装GRAILS..............................................................................................................................3安装JDK.................................................................................................................................................3安装GRAILS.............................................................................................................................................3安装数据库...........................................................................................................................................33创建GRAILS应用程序................................................................................................................4创建RACETRACK应用........................