Grails 1.3.5 发布备注

Grails是一个构建于Java和Groovy上的动态Web应用框架。她以包括Spring、Hibernate和SiteMesh等成熟领先的J2EE框架为基础,将基于规约的开发乐趣带给Java和Groovy开发者的同时,也保护他们已使用数年之久的Java开发资源。

新功能&改进

新特性:基于Groovy 1.7.5

新功能:基于命名的查询现在支持排序

基于命名查询的列表方法目前支持静态列表方法一样的参数,如:排序字段、排序方式、是否大小写敏感等:

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

新功能:用于渲染单一URL的模板视图信息

GSP模板在WEB应用中被通过“g:render标签库”大量复用。很多小的模板聚集起来满足单一页面的展现要求。但也由此带来了难以确认哪个GSP模板是事实上渲染最终呈现HTML页面的,为解决此问题,调试模板,将HTML注释添加至输出中的特性应运而生。注释中包括:用于页面显示的GSP模板。

使用方法也很简单,将“?debugTemplates”或者"&debugTemplates"添加到URL之后即可。当然,该模式仅限于开发模式下。

这里是一个添加“debugTemplates”后的实例:

<!-- GSP #2 START template: /home/user/sampleapp/grails-app/views/_carousel.gsp precompiled: false lastmodified: 22.6.2010 10:45 -->
.
<!-- GSP #2 END template: /home/user/sampleapp/grails-app/views/_carousel.gsp rendering time: 115 ms -->
Each comment block has a unique id so that you can find the start & end of each template call.

改进点:GSP页面自动刷新支持预编译的GSP了

详情参阅Grails参考文档。

但GSP自动刷新允许后,i18n也可进行自动刷新。新的“message_*.properties”文件将不会被检测,只有对现有“.properties”文件的改动会在5秒的间隔内自动刷新。

在Config.groovy文件中的配置范例如下:
grails.gsp.reload.enable = true

该配置在Tomcat下被测试可行,你可以直接编辑"war目录" ("exploded war directory")下的GSP文件,如:$TOMCAT_HOME/webapps/myapp-0.1/WEB-INF/grails-app/views
和$TOMCAT_HOME/webapps/myapp-0.1/WEB-INF/grails-app/i18n目录下的文件。如果您使用WAR文件部署,请确定你已经备份您的修改,否则你的改动将在下一版本发布时丢失。您也可能由于应用服务器的重启丢失您的改变。如果您希望使用该特性,建议使用“暴露模式”部署WAR文件。

改进点:创建的URL链接默认将被缓存

Grails将用带权重的最近最少使用(Weighted LRU)算法缓存由"g:createLink"标签创建的链接(和其他由Grails UrlMappingHolder/UrlCreater接口创建的链接)。缓存的模板大小是160000个字节。用户可以通过"grails.urlcreator.cache.maxsize"对缓存容量加以配置:


// 设定UrlCreatorCache大小为 200000字
grails.urlcreator.cache.maxsize = 200000

// 禁止 UrlCreatorCache
grails.urlcreator.cache.maxsize = 0

LRU缓存由"concurrentlinkedhashmap 1.0_jdk5"实现。这是Grails 1.3.5的一个新增依赖。同样的实现被应用于URL的匹配(修复了URL匹配中的内存泄露)。

改进点:应用实例可以在resources.groovy中方便获取。

之前你必须通过ApplicationHolder(或者ConfigurationHolder)来取得应用实例,现在你只要简单应用"application"即可。

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")
        }
    }
}

改进点:功能测试支持增强

提供给插件的功能测试支持已经包含远程实例或在WAR部署应用版本中测试的能力,当然,目前并非所有的插件都立即兼容,但相应支持将会在很短的时间内完成。

改进点:使用"run war"的时候可以很方便的配置Tomcat JVM

Tomcat插件模板设定JVM的最大堆空间为512MB,这对你的应用可能不够。你可以通过BuildConfig.groovy中的相应参数来配置:

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

注意:“grails.logging.jul.usebridge”配置打开时的性能
默认新Grails应用将Config.groovy中的“grails.logging.jul.usebridge”配置项打开。SLF4J文档提到JUL到SLF4J桥接对性能的负面影响,推荐在生产环境中将“grails.logging.jul.usebridge”配置项关闭。


参考链接:

http://grails.org/1.3.5+Release+Notes

你可能感兴趣的:(jvm,tomcat,应用服务器,grails,groovy)