1 内容簡介 該部分主要介紹了Grails的開發環境配置,開發第一個簡單的web服務,将應用部署到釋出平台. 2 開發平台搭建 2.1 元件 Eclipse:業界廣泛采用的java開發環境,開源的,最優秀的開發軟體之一 Groovy 的Eclipse 插件: Groovy 的 Eclipse 插件能夠編輯,編譯以及運作 groovy 腳本和類,這個插件隻适用于 eclipse3.1 和 eclipse3.2 Grails:比較流行的架構,groovy是該架構下的腳本語言,不過這種架構開發效率高,運作效率底,好在Grails開發人員已經意識到這個問題,正在改進.還支援動态調試 JDK1.5:java開發包,至少是1.4版本 Eclipse下載下傳: http://www.eclipse.org/ Eclipse插件下載下傳: http://dist.codehaus.org/groovy/distributions/update Grails下載下傳: http://grails.codehaus.org/ 2.2 開發環境配置 2.2.1 安裝與部署Grails 1. 安裝java1.5并設定JAVA_HOME到安裝路徑 2. 解壓縮grails到指定目錄(如:c:/grails-0.5-SNAPSHOT),且設定環境變量GRAILS_HOME

3. 添加Grails中的bin目錄到PATH環境變量((如Windows上 %GRAILS_HOME%/bin) 4. 在指令行輸入"grails",若顯示出幫助資訊,您就可以使用Grails了 2.2.2 安裝Eclipse的groovy插件 · eclipse 下: Help->Software Updates->Find and Install -> Search For New Features to install->然後按下next ·選擇 New Remote Site · name 中輸入 Groovy · URL= http://dist.codehaus.org/groovy/distributions/update,然後按下 OK,Finish ·在 Select the Features to Install 選上 Groovy ,按下 next ·接受 agreement 并按下 next ·如果預設的位址正确則按下 Finish ·下載下傳完畢後點選 Install 或 Install All 建立 Groovy 工程 ·選擇 File -> New -> Project ·選擇 Java Project 并按下 next ·在 Project Name 中輸入MyGroovy ·在 Project Layout 中選擇 Create separate source and output folders 并按下 Finish ·在 Package Explorer 尋找新建立的工程,右鍵選擇 Groovy -> Add Groovy Nature 到目前為止建立的工程中會有一個 src 目錄,一個 bin-groovy 目錄和幾個庫檔案。 bin 目錄被 eclipse 隐藏起來。你需要将 bin-groovy 目錄作為預設輸出目錄連接配接到 src 目錄使得調試器能知道源代碼和類檔案的關聯。 · 在 Package Explorer 中,右擊MyGroovy工程,選擇 Build Path -> Configure Build Path 在 src 中右鍵建立 groovy class ,并輸入例子 class HelloWorld { static void main(args) { def list = [ "dog", "cat", "bird" ] for(l in list){ println l } } } 運作快捷鍵:Alt+shift+x,G 3 第一個例子”hello world” 3.1 Grails基本指令 1. 建立一個新的應用: grails create-app $projectname
建立一個新的GRAILS項目,進入GRAILS_HOME:grails create-app $projectname
以下的指令要進入$projectname,才能執行 2. 建立域類:grails create-domain-class $domainname 3. 生成基本Web應用程式:grails generate-all $domainname 注意:由于bug-245,Grails 0.2.1不能生成控制器。您必須手動生成控制器,其方法是對每個域類使用generate-controller 指令 grails generate-controller $domainname 4. 建立服務:grails create-service $servciename 5. 建立Controller:grails create-controller $controllername 6. 打包:cd $projectname;grails war 3.2 HelloWorld例子 3.2.1 建立HelloWorld項目 進入$GRAILS_HOME,執行 grails create-app HelloWorld, 系統生成的目錄如下 :
%PROJECT_HOME%
+ grails-app
+ conf ---> 存放一些配置資訊,比如資料源
+ controllers ---> 存放控制器
+ domain ---> 存放域對象(domain class)
+ i18n ---> 存放一些i18n相關的内容
+ services ---> 存放服務元件
+ taglib ---> 存放标簽庫
+ views ---> 存放視圖元件
+ layouts ---> 存放布局元件
+ lib
+ spring ---> spring配置資訊(可選)
+ hibernate ---> 配置hibernate配置資訊
+ war
+ WEB-INF
3.2.2 配置資料源 這裡使用的是grails自帶的HSQLDB記憶體資料庫,配置檔案為DevelopmentDataSource.groovy,内容如下: class DevelopmentDataSource { boolean pooling = true String dbCreate = "create-drop" // one of 'create', 'create-drop','update' String url = "jdbc:hsqldb:mem:devDB" String driverClassName = "org.hsqldb.jdbcDriver" String username = "sa" String password = "" } 3.2.3 建立域類,控制器,視圖 域類就是對應資料庫的表的 ,Hello 域就是對應到資料庫的 Hello 表 進入HelloWorld目錄後 Ø grails create-domain-class Hello ( 建立 Hello 域類 ) 編輯這個域 , 以适應自己的需求 class Hello { Long id String name String saywhat } Ø grails generate-all Hello ( 建立 Hello 控制器和視圖 view) Ø grails run-app ( 運作 web 服務 ) 預設是8080端口,指定端口grails -Dserver.port=80 run-app 在IE裡輸入http://127.0.0.1:8080
到此一個有增,删,改的web服務弄好了,系統給你做了大部分工作. 3.3 使用服務 Grails裡的服務類似于java的jar包,是封裝好的接口. 3.3.1 建立服務:grails create-service Hello 修改HelloWorld/grails-app/services/LoginService.groovy的内容為: class HelloService { boolean transactional = true def sayHello(String name){ return name + "say: hello world!!!" } def serviceMethod() { // TODO } } 3.3.2 修改controller class HelloController { HelloService helloService // 定義服務 def index = { redirect(action:testhello,params:params) } // 預設的 action 為 testhello def testhello = {// 定義一個名為 testhello 的 action // 從域類 ( 就是資料庫表 ) 裡查詢資料 def hello = Hello.executeQuery("select id,name,saywhat from Hello") def helloList = new ArrayList() for(ehello in hello){ helloList.add(helloService.sayHello(ehello[1])) } //render 到 hello 的視圖就是 hello.gsp, 參數是 model 裡的左邊的 helloList, 右邊的 helloList 是 ”def helloList” render(view:'hello',model:[helloList:helloList]) } …… } 3.3.3 添加hello.gsp 在views/hello目錄下添加hello.gsp,代碼如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="layout" content="main" /> <title>Show Hello</title> </head> <body> <div class="body"> <g:each in="${helloList}" var="varHelloList"> <h1>${varHelloList}</h1> </g:each> </div> </body> </html> Web效果圖:
4 部署服務 1. 到工程目錄下,執行:grails war 2. 把*.war檔案放在apache的webapp下,啟動apache就可以了