Grails快速入门(Quick Start)

安装好Grails后,通过下面几步工作就可以创建一个简单的Grails项目,从中来体验下Grails多带来的便捷。
创建一个Grails项目:
grails create-app
提示输入程序名的时候输入你希望的名字(本例用的是project)
create-app:
[input] Enter application name:
project
生成的项目结构如下

/opt/grails/project
.
|-grails-app —>(对应ruby on rails的app目录)
|—conf —>放置配置文件,例如数据源的配置文件(对应ror的config目录)
|—controllers —>放置controller文件
|—domain —>放置domain class文件(对应ror的model目录)
|—i18n
|—services
|—taglib
|—views —>放置views文件(对应ruby on rails的views目录)
|—–layouts —>放置layouts文件(对应ruby on rails的layouts目录)
|-grails-tests —>和grails-app对应的,这个是测试文件的目录(对应ror的test)
|-hibernate —>hibernate配置信息目录(可选)
|-lib
|-spring —>spring配置信息目录(可选)
|-src
|—groovy
|—java
|-web-app
|—css
|—–tree
|——-check
|——-default
|——-folders
|——-menu
|—images
|—–tree
|——-check
|——-default
|——-folders
|——-menu
|—js
|—–prototype
|—–yahoo
|——-assets

|—META-INF
|—WEB-INF
|—–classes
|—–tld

配置数据源:(这步在我们的快速入门里可以暂时忽略)
Grails在grails-app/conf下创建了三个数据源配置文件,DevelopmentDataSource, TestDataSource, and ProductionDataSource分别对应了三种标准的环境
Grails默认帮我们设置了HSQLDB数据库(使用内存模式),这个有利于测试,但对实际部署没有多少意义。可以方便替换成想要的数据源,只要做相应的修改,并把所需的数据库驱动类库放入lib目录就可以了。
创建Domain Class:
cd project
grails create-domain-class

提示的时候输入你希望的domain class名(以book为例),Grails会在grails-app/domain目录下创建Book.groovy,此时Book.groovy的内容为:
class Book {
}

下面给book添加属性,
vi grails-app/domain/Book.groovy
class Book {
Long id
Long version

String title
String author
}

book对应的是数据库中的book表,Book中的属性对应的是book表中列,book表以及列会通过GORM自动生成
下面有必要创建些测试数据:
vi grails-app/conf/ApplicationBootStrap.groovy
class ApplicationBootStrap {

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 = {
}
}

创建Controller:
grails generate-all
生成grails-app/controllers/BookController.groovy
运行Grails:
grails run-app
Grails默认的测试环境是Jetty,默认端口是8080(这也许会和你的tomcat冲突),你可以自己指定端口,比如:
grails -Dserver.port=9090 run-app
下面在浏览器里看下你的成果http://localhost:8080/project/book/list 或者http://localhost:8080/project/book/(list是BookController的默认动作)。

此处截图就省略了。
感觉是比Ruby on Rails快。

Leave a Reply