`
shiren1118
  • 浏览: 133411 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

Grails Quick Start

阅读更多

<!----><!----> <!---->

 http://www.grails.org/Quick+Start上的文章,是Grails最简单的入门文档,今天忽然看了一下,发现有的东西真的给忽略了,有些没有按规范做法做,遂翻译了一下,希望能对各位有所帮助~~~~

 

 

 

Grails Quick Start

以下是开始简单的grails 工程。也有一个按如下步骤创建一个小的appscreencast

创建一个 Grails project

如果你已经安装了Grails ,你可以使用内置的命令(built-in target )来创建新工程:

grails create-app

该命令会提示你输入工程名字,创建的工程目录结构如下:

%PROJECT_HOME%

    + grails-app

       + conf                 ---> location of configuration artifacts

           + hibernate              ---> optional hibernate config

           + spring                 ---> optional spring config

       + controllers          ---> location of controller artifacts

       + domain               ---> location of domain classes

       + i18n                 ---> location of message bundles for i18n

       + services             ---> location of services

       + taglib               ---> location of tag libraries

       + util                 ---> location of special utility classes

       + views                ---> location of views

           + layouts              ---> location of layouts

   + lib

   + scripts                  ---> scripts

   + src

       + groovy               ---> optional; location for Groovy source files

                                   (of types other than those in grails-app/*)

       + java                 ---> optional; location for Java source files

   + test                     ---> generated test classes

   + web-app

       + WEB-INF

配置数据源(可选)

"create-app" 命令已经给你为每1 种标准环境:Development, TestData, and Production 创建了一个使用闭包的数据源组件,位于"<..>/grails-app/conf" 目录下,名称为DataSource.groovy

下面操作的所有例子都是在开发环境下。详见配置# 环境

默认的,每个数据源都配置了一个HSQLDB 的内存模式的数据库(易于测试,但可能对你的实际开发没那么有用)所以这步是可选的:

dataSource {

  pooled = false

  driverClassName = "org.hsqldb.jdbcDriver"

  username = "sa"

  password = ""

}

// environment specific settings

environments {

  development {

    dataSource {

      dbCreate = "create-drop" // one of 'create', 'create-drop','update'

      url = "jdbc:hsqldb:mem:devDB"

    }

  }

  test {

    dataSource {

      dbCreate = "update"

      url = "jdbc:hsqldb:mem:testDb"

    }

  }

  production {

    dataSource {

      dbCreate = "update"

      url = "jdbc:hsqldb:file:prodDb;shutdown=true"

    }

  }

}

配置数据源只需要改成想要使用的数据库,驱动,把驱动的jar 包放在<..>/lib 下。dataSource 处定义的属性集为子结点继承。

创建领域类

确保此时(cmd 或终端下)在你工程的根目录下,键入

cd my-project

grails create-domain-class


该命令提示你输入领域类的名字。输入"book" 后会在你工程grails-app/domain 下创建Book.groovy 。你可以使用你最喜欢的文本编辑器或
IDE 来编辑。


提示: 当你命名领域类的时候,名字不能和数据库中的关键字一样(例如在mysql"Group" 是关键字;这时你可以这样命名如"UserGroup" )。

 

提示: Grails doesn't seem to like names like MYCar or MYtruck (more than one capital letter at the beginning of the name). Names like MyCar or MyTruck, however, seem to work fine. Classes with names that have more than one capital letter in the beginning give 404 pages even if views for the class exist or scaffolding is set. If you are having problems with views not showing up and your names have more than one capital letter in the beginning of the name, try changing your names to the "Grails-friendly" format and try again.

领域类是持久化组件,所有的属性默认被持久化到数据库( 欲知详情,请看 GORM (Grails Object Relational Mapping) 部分):

class Book {

    String title

    String author

}

此时你可能想创建一些测试数据。一个简单的方法是在"<..>/grails-app/conf/BootStrap.groovy"

( 提示: 0.5.6, 或其他版本, 可能被改为ApplicationBootStrap.groovy) Grails application bootstrap class "init" 闭包中构建和保存领域对象:

class BootStrap {

    def init = { servletContext ->

        // Create some test data

        new Book(author:"Stephen King",title:"The Shining").save()

        new Book(author:"James Patterson",title:"Along Came a Spider").save()

    }

    def destroy = {

    }

}

( 提示:你可以和在控制器或Grails applications 其他部分一样来构建和保存领域对象; 详见 Grails Object Relational Mapping (GORM) )

创建控制器

控制器   Grails applications 的核心,负责处理web 请求和把请求的URLs 映射到控制器类或该类中的一个闭包。

运行"grails create-controller " 命令,输入控制器名字。在本例中我们输入"Book" ,会 生成一个名为{{grails-app/controllers/BookController.groovy }} 的控制器。

  打开该控制器,使用动态的脚手架 ,它会在运行的时候动态生成你的应用程序。修改如下:

class BookController {

     def scaffold = Book

}

确保你输入的"Book" 是首字母大写的B

 

提示: 为了使脚手架有效,你需要在生成的文件移除或注释掉"def index = { } "

备选方案,你也可以运行"grails generate-all" 命令,它会为你生成所有的脚手架,且让生成的控制器独立,而不是用默认的脚手架来替换它。很值得学习。

 

启动Grails

为了启动Grails app 需运行如下命令

grails run-app

 

这会启动Jetty servlet engine 的运行在端口8080 的一个实例。为了在不同地端口启动如9090 可以使用{{grails -Dserver.port=9090 run-app }}.

为访问book 列表,打开浏览器,输入:

http://localhost:8080/my-project/book/list

 

因为英文"list"BookController 默认的action ,也可以输入:

http://localhost:8080/my-project/book

 

在开发模式下, Grails 好像很慢,页面加载可能超过1 秒。如果这样的话,你可以尝试通过设定{{JAVA_OPTS}} 环境变量来增加堆大小的最大值,如: '-Xmx512m'- 当你运行Grails 的时候,这会设定堆大小的最大值为512Mb ,这样就可以感觉到响应速度的提升。

接下来要做的事

 

 

 

5
0
分享到:
评论
1 楼 shiren1118 2008-12-31  
使用官方教程的时候自己要注意其中改变

相关推荐

    Grails A Quick-Start Guide:Dave Klein (DK)

    通过以上章节的总结,我们可以看到 Grails:A Quick-Start Guide 不仅涵盖了 Grails 的基础知识,还提供了实际项目开发的经验分享。无论是初学者还是有一定经验的开发者,都能从这本书中获得有价值的信息,帮助他们在...

    Grails : A Quick-Start Guide

    Java web development is notoriously tedious, ... This book will get you up and running with Grails by putting it to use in constructing an original, working application from start to finish. Book Details

    Grails 2 A Quick-Start Guide (Pragmatic Programmers 2013)

    ### Grails 2 快速入门指南核心知识点详解 #### 一、Grails框架简介与特点 Grails 是一个基于Groovy语言的全栈式的Java Web应用开发框架,它极大地简化了开发流程,并且能够快速地搭建出高性能的应用程序。本书...

    Grails.2.A.Quick-Start.Guide.pdf

    ### Grails 2: A Quick-Start Guide #### 书籍概览 《Grails 2:快速入门指南》是一本专为希望快速掌握Grails框架的开发者编写的实用指南。本书由Dave Klein与Ben Klein共同编写,通过一个逐步迭代的小项目来介绍...

    grails-docs-1.0-RC1.pdf

    1. **Quick Start**:提供快速入门指南,帮助新手快速上手Grails开发。 2. **Reference**: - **Artifact Reference**:详细介绍Grails中的各种Artifacts,包括其属性、方法等。 - **Builders Reference**:介绍...

    Domain-Driven Design Using Naked Objects

    5. **戴夫·克莱因(Dave Klein)** —— 《Grails: A Quick-Start Guide》作者: - 表示作者成功地将DDD理论转化为实践。 6. **欧因·伍兹(Eoin Woods)** —— 《Software Systems Architecture: Working with ...

Global site tag (gtag.js) - Google Analytics