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 ,這樣就可以感覺到響應速度的提升。

接下來要做的事

 

 

 

發佈了26 篇原創文章 · 獲贊 15 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章