`
romejiang
  • 浏览: 96846 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

Grails从零开始开发项目三

阅读更多

新建项目
准备工作做完了,开始创建项目,这里要说一下,Grails这种脚手架方式和一般传统的开发模式有点不同,因为它是遵循规约大于配置的方式,所以每个类、配置文件等所有文件都要求在固定的位置和相应的名称,所以它可以帮你预先创建好这些文件和类,这就是所谓的脚手架,就是帮你生成好默认模板代码。使用Grails开发的模式是生成->测试->修改/编码->完成,和传统模式有些区别,所以使用Grails来做项目可能需要有一个适应的阶段。
现在开始建立项目。进入powercmd,cd到你的项目目录(powercmd可以目录补全,tab键)。例如我的:e:/projects
在这里输入建立项目的命令:grails create-app leadtoasia

(leadtoasia项目名称,也是因为要做这个项目,才想吧整个项目开发过程记录下来汇总成一系列Grails开发的文章)
会看到一些信息,这些告诉你都生成了些什么,如果有兴趣可以看看。完成之后会在e:/projects/leadtoasia目录下生成了这个项目。
其目录结构如下:


grails-app : 项目源代码主目录
lib : 存放项目中用到的jar文件的,相当于/WEB-INF/lib
scripts : 可以编写自定义脚本,用于项目的编译生成等工作
src :除规约以内的其他源代码,可以是Groovy或java
target : Grails 1.20后吧编译过程中的class文件或测试报告文件放在这里
test : 单元测试和集成测试代码
web-app : web的静态文件
application.properties : 项目和插件的管理文件,一般不要改动
design : 这个不是Grails生成的,就是因为Grails没有生成存放设计文档的目录,一般我会自己建立一个这样的目录。
devDb.properties : 内存数据hsqldb配置文件
devDb.script : 内存数据库hsqldb数据文件
g.bat : 命令行简化工具,后面详细说。

看看grails-app目录中的内容,项目源代码主目录
conf : 项目配置信息
controllers : 控制器,mvc的控制层
domain : 域对象, mvc的model层
i18n : 国际化
services : 服务
taglib : 标签
utils : 工具类
views : gsp页面,mvc的view层

 

项目配置 conf目录下的代码和作用


BootStrap.groovy : 项目自定义启动和关闭事件
BuildConfig.groovy :构建配置,可以支持maven或ant
Config.groovy : 项目主配置文件,配置一些默认信息,log4j,不同环境下的变量,还有可以自定义配置
DataSource.groovy : 数据库配置,可以根据不同的环境配置不同的变量,有 development,test,production三种环境,为他们分别配置数据信息。
hibernate : hibernate的自定义配置,基本用不到
spring : spring的自定义配置,基本也用不到
UrlMappings.groovy : url映射和转发,看了你就明白

以上这么多,如果你是初次接触Grails暂时可能看不明白,这是正常,随着你深入了解Grails,这些都会对你非常重要,也会非常熟悉的,现在你只需要浏览一下,直到大概就可以。

项目建成后,通过上面的命令也了解了大概项目的结构,现在可以运行一下看看有什么东东,执行:
grails run-app
会有一些输出信息,但最后你会看到 Server running. Browse to http://localhost:8080/leadtoasia
这就说明项目启动成功了,拷贝powercmd窗口中这个地址 http://localhost:8080/leadtoasia (powercmd方便吧!哈哈)到浏览器里看看,可以看到项目的默认界面。

 
了解conf和Config.groovy和groovy和DataSource


浏览一下Config.groovy和DataSource.groovy文件,内容很直观,config是项目的一些统一配置,DataSource是数据库参数配置,因为Grails的ORM用的是Hibernate所以DataSource内可以直接使用Hibernate的配置参数和值。
这样不用写xml配置文件的Hibernate是不是已经让你很爽了,但我觉得config文件中最值得一说还不是这些,而是Grails的环境配置机制。Grails允许你为不同的环境配置参数,共有三种环境,production、development、test。
你以前可能遇见过这样的情况,项目打包部署到生产服务器时,需要把很多配置信息、数据库连接等等改成生产环境的配置。这是非常无聊而且容易出错的工作。有了这个机制就可以彻底解决这个问题和类似的问题。DataSource.groovy也是一样,可以为三种环境配置不同的数据库连接和类型,甚至不同的环境配置不同的Hibernate参数,缓冲,连接池、连接不同的数据库等等。而且后面参数覆盖前面的参数,也就是说你可以吧默认参数写在最外面,然后在后面可以通过覆盖调整。

而且你会在Config.groovy文件中看到以下面的代码,同一个变量定义了三次,而且都不一样。

environments {

    production {

        grails.serverURL = "http://www.changeme.com"

    }

    development {

        grails.serverURL = "http://localhost:8080/${appName}"

    }

    test {

        grails.serverURL = "http://localhost:8080/${appName}"

    }

}
 

 

这些变量你在需要使用时只需要调用,grailsApplication.config.grails.serverURL,就会根据你当时的环境获得相应的变量。明白了吗?Grails提供三种运行环境。你在运行项目时可以通过参数确定环境。

 

grails run-app //默认的dev开发环境

grails war //默认prod 产品环境

grails test-app // 默认测试环境

grails prod run-app //强制产品环境
 

所以你就可以继续扩展很多变量在这个下面。比如这样:

environments {

    production {

        grails.serverURL = "http://www.changeme.com"

        file.store = "d:\\files\\"

    }

    development {

        grails.serverURL = "http://localhost:8080/${appName}"

        file.store = "/data/uploads/"

    }

    test {

        grails.serverURL = "http://localhost:8080/${appName}"

        file.store = "d:\\test\\"

    }
}
 



这样就可以解决你在win平台下开发,而部署应用到linux服务器中而不需要修改任何配置文件。爽吧


配置Log

// log4j configuratio
log4j = {
    // Example of changing the log pattern for the default console
    // appender:
    //
    appenders {

//        console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')

    }

    error  'org.codehaus.groovy.grails.web.servlet',  //  controllers

           'org.codehaus.groovy.grails.web.pages', //  GSP

           'org.codehaus.groovy.grails.web.sitemesh', //  layouts

           'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping

           'org.codehaus.groovy.grails.web.mapping', // URL mapping

           'org.codehaus.groovy.grails.commons', // core / classloading
           'org.codehaus.groovy.grails.plugins', // plugins
           'org.codehaus.groovy.grails.orm.hibernate', // hibernate integratio
           'org.springframework',
           'org.hibernate',
           'net.sf.ehcache.hibernate'
    warn   'org.mortbay.log'

}
 



这些就是Grails默认对log4j的配置,又见到这种Groovy独有的语法,非常简单易懂方便理解。这里有两个地方可能我们需要调整。
一个是:appenders,在appenders里可以添加自定义的日志内容格式。
比如:     console name:'stdout', layout:pattern(conversionPattern: '[%d{yyyy/MM/dd HH:mm}] [%p] [%c{2} %L] - %m%n')

还有就是定义在我们项目中输出那些日志,非常简单。

    info "grails.app.domain"
    info "grails.app.controller"
    info "grails.app.service"

info是日志级别,"grails.app.domain"是需要输出的类,方便吧!!!下面是所有可选的日志范围。
    * bootstrap - For bootstrap classes
    * dataSource - For data sources
    * tagLib - For tag libraries
    * service - For service classes
    * controller - For controllers
    * domain - For domain entities

结合前面讲到的环境变量机制和覆盖机制你的log4j配置信息应该是这样的。
默认的配置不动,添加下面这段在Config.groovy

environments {
    production {
        grails.serverURL = "http://www.changeme.com"


    }

    development {

        grails.serverURL = "http://localhost:8080/${appName}"

        log4j = {

        appenders {
            console name:'stdout', layout:pattern(conversionPattern: '[%d{yyyy/MM/dd HH:mm}] [%p] [%c{2} %L] - %m%n')

        }

        info "grails.app.domain"
        info "grails.app.controller"
        info "grails.app.service"
        }

    }

    test {

        grails.serverURL = "http://localhost:8080/${appName}"

    }
}
 

 

  • 大小: 7.7 KB
1
0
分享到:
评论

相关推荐

    Grails从零开始开发项目二

    在本节中,我们将深入探讨"Grails从零开始开发项目二"的相关知识点,这是一个关于使用Grails框架进行Web应用开发的学习过程。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效的开发速度和丰富的插件生态...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    2. 快速上手:文档通常包含安装指南、教程、API参考等,为开发者提供从零开始到项目开发的全程指导。 3. 进阶学习:除了基础内容,中文文档还可能涉及更高级的主题,如性能优化、测试策略、插件开发等,帮助开发者...

    grails app

    《构建Grails应用程序:从零开始》 在IT行业中,Grails是一个基于Groovy语言的开源Web应用框架,它利用了Java平台的优势,提供了一种高效、简洁的开发方式。本压缩包文件“grails app”包含了一步步搭建Grails应用...

    Grails基础教程.pdf

    - **Hubbub快速启程**:从零开始创建一个简单的应用实例。 - **GORM的介绍**:Grails对象关系映射(GORM)是一种强大的ORM框架,简化了数据访问层的开发。 **5.2 第一个领域类对象** - **通过测试储存和获得用户**...

    Grails,移动互联网时代服务器端开发的利器

    Grails拥有丰富的插件生态系统,可以快速扩展功能,如安全、缓存、报表等,无需从零开始编写代码。 5. **模板引擎** GSP(Grails Server Pages)模板引擎允许开发者使用Groovy语法编写视图,与控制器和模型紧密...

    Java程序员使用Grails的十大优势

    使用Grails意味着开发者不必从零开始学习新的框架或语言,而是可以在现有基础上进一步发展。这种做法不仅节约了时间,还提高了生产力。因此,对于那些希望在已有技能集上进行扩展的Java开发者来说,Grails是一个理想...

    Getting Started with Grails

    - **集成性**:深度集成了Spring、Hibernate等框架,利用它们的强大功能而不需从零开始。 - **易用性**:丰富的脚本命令和自动化生成机制,让开发者能够快速搭建应用原型。 - **社区支持**:拥有活跃的开发者社区,...

    Grails1.0_final_doc_and_API

    这部分内容可以帮助开发者从零开始学习Grails,涵盖了从安装环境到创建第一个应用程序的所有步骤。其中,你将了解到: 1. **Groovy基础**:Grails的基础是Groovy语言,它是一种动态的、面向对象的编程语言,语法...

    Grails 2 A Quick-Start Guide (Pragmatic Programmers 2013)

    - **项目实战案例**:通过一个具体的项目案例,从零开始逐步构建一个完整的Web应用程序,涵盖从环境搭建到部署上线的整个过程。 - **最佳实践指导**:提供了一系列开发过程中可能会遇到的问题及解决方案,以及如何...

    Grails.2.A.Quick-Start.Guide.pdf

    3. **项目迭代开发**:通过一个具体案例,从零开始构建一个完整的Grails应用程序。书中详细介绍了从需求分析到功能实现的全过程,包括数据库设计、控制器编写、视图渲染等多个环节。 4. **进阶主题**:涉及更高级的...

    Apress.Beginning.Groovy.and.Grails.From.Novice.to.Professional.Jun.2008

    Grails的插件系统允许开发者扩展功能,如安全、国际化、缓存等,而无需从零开始。此外,Grails的测试支持也非常完善,包括单元测试、集成测试和功能测试,确保了软件质量。 通过阅读《Apress.Beginning.Groovy.and....

    Apress.Beginning.Groovy.and.Grails.From.Novice.to.Professional.2008.rar

    这本书的核心目标是帮助读者从零基础开始,逐步掌握这两门语言的精髓,从而在实际开发中游刃有余。 Groovy是一种基于Java平台的、动态类型的编程语言。它简化了Java的语法,提高了开发效率,同时又能够无缝地与Java...

    Groovy入门]第一讲.项目演示与搭建Groovy开发环境

    这些资源将详细解释如何从零开始构建一个Groovy项目,以及如何解决在搭建环境中可能遇到的问题。 总之,Groovy作为一门强大且易学的编程语言,为Java开发者提供了新的工具和可能性。通过项目演示和环境搭建,你可以...

    richui-two:适用于 Grails 2.3.4 的 RichUI Grails 插件版本 > *

    通过这个插件,开发者无需从零开始编写前端代码,而是可以直接利用预封装的 UI 组件,如按钮、表单、数据网格、对话框等,快速构建功能丰富的页面。 在 "richui-two" 版本中,特别强调了对 Grails 2.3.4 的兼容性。...

    应用框架在JSP开发中的应用

    应用框架是一组预先定义好的规则、设计模式和类库,开发者可以基于这些规则来构建应用程序,而无需从零开始编写所有代码。它们通常包含用于处理请求、管理会话、数据持久化、安全性、国际化等功能的组件。在JSP开发...

    grails-spring-security-ui

    通过此插件,开发者可以快速构建出符合标准的安全管理界面,而无需从零开始编写大量的前端代码。 1. **安装与配置** 在Grails项目中,我们可以通过在`build.gradle`文件中添加依赖来安装`grails-spring-security-...

    web开发框架XiaomiRose.zip

    一个从零开始的创业公司,在大家技术背景不一的情况下,rose很简单快速地传达到了大家中间。本手册致力于让php开发人员也能快速使用上java开发高性能服务。如果在阅读过程中有任何疑问,欢迎来信咨询:czhttp@gmail....

    Spring Recipes, 3rd Edition 2014.10最新版本

    读者可以将书中的代码和配置文件直接应用到自己的项目中,稍作修改后使用,这样可以节省大量的从零开始构建项目的精力。 《Spring Recipes, 第三版 2014.10最新版本》适合那些希望深入学习并掌握Spring框架的企业...

Global site tag (gtag.js) - Google Analytics