Grails 1.2参考文档速读(1):第1、2章

在讨论组和邮件列表(也包括国外的邮件组)中,我经常看到一些非常“低级的”问题,很明显是从来没有阅读过参考文档的。由此,我萌发了撰写“参考文档速读”这一系列的念头,期望Grails开发者能通过这一系列迅速了解参考文档重点,节约自己的宝贵时间。如无意外,本系列当在春节前完工,算是对即将到来的虎年献礼。
请注意:本速读系列顶多算是参考文档的索引,不要期望能用它来替代参考文档!
按惯例,参考文档的第一章应该向大家交代“Grails是什么?”。总结如下:
1.Grails是受到RoR启发的高生产率Web开发框架。
2.其框架特点:
  • 充分利用Groovy语言特点,提供了简化Web开发的大量DSL。
  • 建立在众多成熟的工具框架基础之上,如Spring、Hibernate、SiteMesh等。
  • 支持插件,便于应用的功能划分、工作成果的固化和分享,为创建良好的Grails生态环境提供了基础。
Grails涉及的技术有:Groovy、GORM、GSP、Spring、Hibernate、SiteMesh、Gant等,因此要想用好Grails,对这些技术的熟练掌握是必须的。
文档的第2章是Grails的快速入门。
首先自然是安装:
  • 下载Grails应用
  • 设置GRAILS_HOME环境变量
  • 设置PATH环境变量
接下来,谈到的是从旧版本向新版本升级时需要注意的信息。如果你之前从未使用过Grails,这一部分完全可以略过。本系列假定读者从未使用过Grails,因此,这部分内容请参见参考文档。
在进入实质练手阶段之前,我们先来了解一下Grails的常用命令:
  • 创建应用:grails create-app
  • 运行应用:grails run-app
  • 测试应用:grails test-app
  • 打包应用:grails war
  • 创建领域对象:grails create-domain-class
  • 创建Controller:grails create-controller
  • 产生scaffolding:grails generate-all
  • 帮助:grails help
现在轮到“Hello World!”出场了:
  1. grails create-app helloworld
  2. cd helloworld
  3. grails create-controller hello
  4. grails_app/controllers/HelloController.groovy代码如下:
    class HelloController {
            def world = {
                render "Hello World!"
            }
       }
  5. grails run-app
  6. http://localhost:8080/helloworld
不出意外,浏览器中将输出我们熟悉的“Hello World!”。现在,我们近距离看看Grails应用的典型目录:
grails-app目录存放Grails应用相关的groovy代码,其下有子目录:
  • conf:配置,它包含hibernate和spring子目录,分别用来配置额外的hibernate和spring配置
  • controllers:控制器
  • domain:领域对象
  • i18n:国际化资源文件
  • services:定义服务
  • taglib:定义标签库
  • views:定义GSP,其中的layout定义了页面布局
  • utils:定义工具类
scripts目录存放Gant脚本,扩展名为groovy
src目录存放其他源代码,其下有groovy和java子目录,分别对应这两种语言的代码。
test目录存放测试代码,其中有unit和integration子目录,分别对应单元测试和集成测试。这两种测试的区别在于:集成测试是一个完整的Grails环境,会发生依赖注入;而单元测试则不是,所有东西都是mock。
最后,作为本文的结束,让我们看看一个更典型的例子:实现用户CRUD操作。
  1. grails create-app user
  2. cd user
  3. grails create-domain-class user
  4. 进入grails_app/domain/User.groovy,两个属性:name、address
  5. grails generate-all user
  6. grails run-app
  7. http://localhost:8080/user

你可能感兴趣的:(职场,grails,休闲,1.2)