`

Grails 从1.2.x 到1.3.x的改进

阅读更多

 

 

本文是对Grails 1.2.x 至 1.3.7版本之间主要的新特性做了一个汇总,以便于学习和查阅。如果有新版本发布,还会持续更新。

 

参考文档:http://grails.org/Release+Notes

 

 

 

 

框架、配置等

------------------------------------------

 

可以重新加载预编译的GSP,包括i18n也会重新加载。

在Config.groovy中设置:

grails.gsp.reload.enable = true

 

处于性能原因,建议在生产环境中关闭config.groovy中的grails.logging.jul.usebridge参数。

 

 

全局应用程序布局(config.groovy中):

grails.sitemesh.default.layout='myLayoutName'
 

 

可以在resource.groovy中直接访问应用程序的实例,比如:

import grails.util.*
beans = {
    if (application.config.my.company.mockService) {
        myBean(my.company.mock.MockImpl) {
            bookService = ref("bookService")
        }   
    } else {
        myBean(my.company.MyBeanImpl) {
            bookService = ref("bookService")
        }
    }
}
 

 

可以在BuildConfig.groovy中设置Tomca JVM的参数:

grails.tomcat.jvmArgs = ["-Xmx1024m", "-XX:MaxPermSize=256m"]
 

 

 

通过run-script运行多个Groovy脚本:

grails run-script [path-to-script-1] [path-to-script-2]...[path-to-script-n]
 

 

 

出于安全考虑,Grails日志信息可以用以下配置排除记录请求参数中的敏感信息:

grails.exceptionresolver.params.exclude = ['password', 'creditCard']
 

或者干脆通过配置grails.exceptionresolver.logRequestParameters参数禁止日志记录请求参数。

grails.exceptionresolver.logRequestParameters = false
 

 

 

 

视图、Web标签

------------------------------------------

link标签可以支持attr属性:

<link:accountDetails attrs="[class: 'fancy']" acctNumber="8675309">Show Account</link:accountDetails>

  结果是

<a href="/details/8675309" class="fancy">Show Account</a>

 

 

新的标签unless,与if标签类似:

<g:unless test="${cacheEnabled}">
  Tag Body Goes Here
</g:unless>

 

新的join标签:

<g:join in="['Grails', 'Groovy', 'Gradle']" delimiter="_"/>

结果是:

Grails_Groovy_Gradle
 

 

 

 

 

GORM

------------------------------------------

 

GORM支持beforeValidate

 

class Person {
   String

 name
   static

 constraints = {
       name size: 5..45
   }

def beforeValidate() { name = name?.trim() }

}
 

查询支持排序:

Person.recentPublications.list(sort: 'title', order: 'desc', ignoreCase: true)
 

.find方法和.findAll方法支持查询缓存:

def musicians = Musician.find('from Musician where name = :name', [name: 'Brian'], [cache: true])

Book.findAll("from Book as b where b.author=:author"





, [author:'Dan Brown'], [cache: true





])
 

 

新的方法检查脏数据(对象是否改变)

def airport = Airport.get(10)
assert !airport.isDirty()

airport.properties = params if (airport.isDirty()) { // do something based on changed state }

 包括检查单独的域(字段)

def airport = Airport.get(10)
assert !airport.isDirty()

airport.properties = params if (airport.isDirty('name')) { // do something based on changed name }
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Grails 3.X开发实战

    2. **安装Groovy**:从Groovy官方网站下载Groovy 2.x版本,并解压缩到指定目录。 - 下载地址:http://www.groovy-lang.org/download.html 3. **配置环境变量**: - 新增`JAVA_HOME`,指向JDK安装目录。 - 新增`...

    grails-1.2.2.zip

    Grails 1.2.2是该框架的一个重要版本,它在1.x系列中扮演了承上启下的角色,引入了许多改进和新特性,进一步提升了开发者的生产力。 首先,我们来了解一下Grails的核心特性。Grails是基于MVC(Model-View-...

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

    《Apress.Beginning.Groovy.and.Grails.From.Novice.to.Professional.Jun.2008》这本书深入浅出地介绍了Groovy语言和Grails框架,旨在帮助初学者快速掌握这两项技术并转化为专业人士。Groovy和Grails是Java生态中的...

    grails-2.4.4.zip

    这个压缩包“grails-2.4.4.zip”包含了完整的Grails 2.4.4版本,使得开发者可以直接将其集成到IDE中,快速地开始项目开发工作。 1. **Grails框架概述** Grails 是一个遵循MVC(模型-视图-控制器)架构模式的全栈...

    grails-1.3.0.RC2

    Grails 是一个基于 Groovy 语言的开源全栈式Web应用框架,它简化了Java开发流程,提供了丰富的功能集和高效的生产力。Grails 1.3.0.RC2(Release Candidate 2)是该框架的一个重要版本,代表了1.3.0系列的候选发布版...

    grails-5.1.2.zip

    Grails 5.x系列基于Spring Boot,这意味着你可以利用Spring Boot的诸多优势,如自动配置、健康检查和内嵌服务器。在5.1.2版本中,这种集成可能更加紧密,提供更好的性能和更少的配置需求。 7. **测试框架**: ...

    grails使用freemarker.rar

    Grails以其插件系统、GORM(Grails Object Relational Mapping)和Groovy语言的简洁性而受到开发者的欢迎。使用Grails,开发者可以快速构建复杂的应用程序,而FreeMarker的集成进一步增强了其视图层的表现力。 ...

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

    书中详细介绍了从需求分析到功能实现的全过程,包括数据库设计、控制器编写、视图渲染等多个环节。 4. **进阶主题**:涉及更高级的功能,如安全性增强、性能优化、部署策略等,帮助读者应对真实世界中的挑战。 5. ...

    Grails基础教程.pdf

    - **吸取的经验教训**:Grails从其他成功的Web框架中汲取经验,并结合Groovy语言的特点进行了优化,旨在提供更好的开发体验。 **1.5 使用Grails的原因** - 快速开发:Grails提供了丰富的脚手架功能,可以帮助...

    Grails_Portal.pdf

    ### Grails_Portal.pdf 关键知识点解析 #### Groovy简介 - **定义**:Groovy是一种敏捷且动态的语言,专为Java虚拟机(JVM)设计。 - **特点**: - 在保留Java强项的基础上增加了额外功能。 - 使现代编程特性对Java...

    Grails权威指南.pdf

    《Grails权威指南》这本书是针对Grails框架的深度解析之作,旨在帮助开发者全面...通过《Grails权威指南》,开发者可以深入理解Grails框架的全貌,掌握从开发环境搭建到项目上线的全过程,提升Web应用开发效率和质量。

    Groovy&Grails - 指南.ppt

    虽然 Grails 受到 Rails 的启发,但它采用了 Java 平台的成熟技术和库,如 Spring 和 Hibernate,提供了与 Java 应用更好的集成。Ruby on Rails 的特色之一是“约定优于配置”(Convention over Configuration, CoC...

    grails-4.0.4.zip

    Grails 4.0.4是该框架的一个稳定版本,它包含了多项改进和优化,旨在提高开发者的生产力和应用程序的性能。 在Grails 4.0.4中,有几个关键知识点值得我们深入了解: 1. **Groovy语言**:Grails的核心编程语言是...

    grails-2.3.6.zip

    Grails 2.3.6是该框架的一个特定版本,发布于2014年,提供了许多改进和新特性,旨在优化开发流程。 1. **Groovy语言**: Grails的核心是Groovy语言,它是一种动态、类型安全的Java平台上的编程语言,语法简洁,具有...

    The.Definitive.Guide.to.Grails.Second.Edition.2009

    - **新特性介绍**:随着Grails框架的发展,新版本可能会引入新的特性和改进,例如对Groovy新版本的支持、更好的性能优化策略等。 - **案例研究**:书中可能新增了一些实际应用案例,帮助读者更好地理解如何将理论...

    grails-4.0.3.rar

    Grails 4 ships with the following dependency upgrades: Groovy 2.5.6 GORM 7 and Hibernate 5.4 (now the default version of Hibernate for new applications) Spring Framework 5.1.5 Spring Boot 2.1.3 ...

Global site tag (gtag.js) - Google Analytics