天天看點

Grails環境部署開發

  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

Grails環境部署開發

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  

Grails環境部署開發
Grails環境部署開發

到此一個有增,删,改的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效果圖:

Grails環境部署開發

4       部署服務   1.       到工程目錄下,執行:grails war 2.       把*.war檔案放在apache的webapp下,啟動apache就可以了      

繼續閱讀