安装好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快。