论坛首页 Java企业应用论坛

Grails 0.6 新特性简单一览

浏览 3851 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-21  
  首先声明,虽然Graeme Rocher 已经将Grails 0.6的新特性做了简介,可是到目前为止Grails 0.6还没有正式发布,不过也指日可待了。
  原文请参考Grails 0.6 Release Notes,以下是就我本人的了解做了一个简单翻译,以先飨部分Grails fans。

  Grails 0.6主要新特性如下:
  • Groovy和Java联编(联合编译)
  • 集成Spring的Web Flow
  • 在Grails的services中支持Spring的scopes
  • 提高了对REST的支持,可以自动地使用XML/JSON编码,支持RESTful URL映射
  • 新的专门用于配置的DSL取代了原来的convention
  • 支持Sitemesh的inline decorators
  • 启动时间,单元测试和生成工具,在速度上都有大幅度的提高
   现就部分特性做些详细介绍

  Groovy和Java联编

    Groovy和Java的联编意味着在Java源代码中可以直接调用Groovy的类,而且Java源代码现在也支持运行时动态加载,这样一来大大减少了服务器的启动次数。

  集成Web Flow

    有了Spring Web Flow项目的支持,Grails现在可以构建有状态的flows了,详细的DSL可以参考Web Flow 描述,此处仅给出一个简单示例
java 代码
 
  1. class BookController {     
  2.    ...  
  3.    def shoppingCartFlow = {   
  4.        showCart {  
  5.            on("checkout").to "enterPersonalDetails"  
  6.            on("continueShopping").to "displayCatalogue"  
  7.        }  
  8.        ...  
  9.        displayCatalogue {  
  10.             redirect(controller:"catalogue", action:"show")  
  11.        }  
  12.        displayInvoice()  
  13.    }  
  14. }  
    Grails在集成Hibernate 和 Web Flow的基础上,允许将会话的范围绑定在一个单独的session上,因此也支持事务会话的乐观锁。

  支持Spring的scopes

    Grails的services类现在支持Spring和Web Flow的scopes。比如一个service class可以在指定"flow"范围,而且可以在客户端和服务器端维护其状态。
java 代码
  1. ass BookService implements Serializable {  
  2.      static scope = "flow"  
  3. }  
    其他支持的scopes还包括"prototype", "singleton", "request", "session", "flash", "flow" 和 "conversation",其中后三个是属于Web Flow的

   REST和Web Services

     Grails 0.6通过URL Mappings加强了对REST的支持,一个URL映射可以将action和HTTP方法一一对应,比如
   
java 代码
 
  1. mappings {  
  2.   "/books/$id?" {  
  3.       controller = "book"  
  4.       action = [GET:"list", DELETE:"delete", POST:"update", PUT:"save"]  
  5.   }  
  6. }  
    此外,一个新的功能点是现在可以轻松地进行 XML 或者JSON 转化了(以前这个特性仅仅在Converters插件中有效)。看一下以下代码就知道了 :)
java 代码
 
  1. ort grails.converters.*  
  2. ...  
  3.   
  4. def list = {  
  5.     render Book.list() as XML  
  6.     // or render Book.list() as JSON  
  7. }  
   发表时间:2007-08-22  
可惜在Grails0.6中还是不支持JSP Tag,好像被放到Grails1.0RC1中了。。。
0 请登录后投票
   发表时间:2007-08-23  
好像是的,不过,对我本人来说,目前还没有用JSP Tag的计划 
看MailList,1.0还是很值得期待的。
0 请登录后投票
   发表时间:2007-08-23  
貌似0.6最迟在下个月出可以发布了把.
混编应该是个好东西,可以暂时解决一些效率问题.
目前的效率问题最多的可能是出现在gsp页面上的一堆tag上.想想还是使用jsp稍微好一点.
找到了这样一篇文章:SyncTheMilk: Business logic in Groovy, UI in Java这倒也是个不错的选择.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics