Grails环境部署开发

2024-01-02 09:38
文章标签 部署 开发 环境 grails

本文主要是介绍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
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就可以了
 

这篇关于Grails环境部署开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/562056

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061