Spring希望通过Roo将Grails式的生产率带到GWT应用开发中

今年5月,VMware与Google宣布合作,方式是将VMware的Spring Roo框架与Google的GWT Java-to-JavaScript编译器的工程师联合起来。此次合作旨在将Spring Roo的生产率引入到基于Java的GWT RIA框架中。

由SpringSource的Ben Alex所领导的Spring Roo是个轻量级、快速的应用开发栈,旨在将使用其他解决方案(如Ruby on Rails和Groovy on Grails)的开发者们所钟爱的快速反馈与生产率特性带到Java开发者社区中。它提供了一个shell,可以生成并管理类的生命周期,使用一种简单的命令语言描述项目搭建、实体、控制器等内容。它提供了一套源码级别的注解,开发者可以对注解的类使用各种Spring Roo服务。

凭借Spring Roo,开发者还可以通过shell生成领域层,但要知道,这种方式与传统的Java企业级DAO方式是截然不同的,这么做通常要优于Entity Manager模式。以下内容来自于Spring Roo的参考文档:

大多数传统的Java企业级应用都会有DAO层、服务层、领域层以及控制器层。典型的Roo应用中只有实体层(类似于领域层)和Web层,如果需要的话还可以增加服务层,但几乎不会使用DAO层。

我们依然可以通过创建基于Spring MVC或是GWT-MVP的CRUD脚手架应用进行应用开发。

Google Web Toolkit(GWT)是个Java-to-JavaScript编译器,开发者可以使用Java IDE及Java习惯编写代码。最终”编译好“的应用实际上是JavaScript,可用于构建跨浏览器、交互式的Web应用。GWT包含了Chrome扩展:Speed Tracer,这是一款可以分析、调试客户端应用的工具。Speed Tracer也包含了服务端分析功能,但这种支持只限于Google App Engine(GAE)和SpringSource tc Server Developer Edition。GWT项目站点这样写到:

通过集成,你可以查看到关于数据库调用、memcache命中率、资源获取以及其他服务器端服务调用的度量信息。

借助于与Google的合作,开发者可以使用GWT扩展应用,可以通过DataNucleus持久化支持将应用部署到GAE上。背后的Spring Roo则自动化了项目生命周期,从包装GWT MVP视图到建立GWT编译器、配置领域持久化、Maven的依赖信息等。

Spring Roo提供了一个命令行工具来生成领域层的JUnit集成测试用例,可以生成构建于Spring集成测试基础设施之上的一整套测试用例来验证常见的JPA操作(如CRUD)是没问题的。此外,Spring Roo借助于Selenium工具为每个项目的Web控制器创建了自动化测试。为了启用Web端测试,Maven需要开启一个Tomcat服务器实例。接下来,Spring Roo就会部署最终的测试Web应用供开发者进行验证。

为了在后台支持双向的代码生成,Spring Roo使用了AspectJ Inter-type declarations(ITDs)。ITD是一个方面,使用类似于Java的语法进行描述,它会在编译期被编织到Java类中。Spring Roo管理着ITDs,一旦包含他们的Java类发生了变化,Spring Roo也会对其作出响应。比如说,给定一个带有注解@RooToString的类,Spring Roo可以在方面中生成或是更新toString()方法来枚举类中的所有变量。该方法会被编译到最终的.class文件中,这样开发者就无需手工编写这些代码了。

请安装IDE(如Eclipse或IntelliJ)来感受Roo的代码生成功能吧,但首先需要安装一个插件,它提供了AspectJ Development Toolkit(ADJT)。这样就会在开发环境中开启AspectJ方面的代码完成支持了。SpringSource提供了一个免费的基于Eclipse的套件:SpringSource Tool Suite(STS),它包含了Spring Roo开发所需的所有插件(比如m2eclipse插件等)。IDE很有用,但并非必须,Roo shell中可以执行所有的命令行。

Christian Dupuis在位于SpringSource的博客上发布了一个示例应用和相关的说明信息。他的博文谈到了STS配置、使用Roo生成项目、部署基本的GWT应用到GAE上的所有步骤。虽然还处于开发的早期阶段,但STS与GWT的集成正不断实现着承诺的特性。

查看英文原文:Spring Aiming to Bring Grails-like Productivity to GWT Application Development With Roo

你可能感兴趣的:(Spring希望通过Roo将Grails式的生产率带到GWT应用开发中)