近日,在MyEclipse 8.6发布不久,Genuitec and Skyway Software的MyEclipse 8.6 for Spring正式发布了。这一版本包含了Spring Core 、Adobe Flex、Spring MVC、 GWT、Spring Web Flow,最为欣喜的便是MyEclipse 8.6 for Spring包含了iPhone Web应用程序快速开发工具。
该版本还引入了一套新的Spring开发编辑器和代码助手,帮助开发基于注解的Spring程序和JAX-WS制品。.
为进一步了解这一新版产品,InfoQ采访了产品总监Niel Eyde。
Q:MyEclipse for Spring 的主要特性是什么,能够解决什么问题?
Niel: MyEclipse for Spring的一个主要特性是脚手架(scaffolding),它包括通过采用由开发者提供的标准应用程序模式的最小输入(inputs)集所产生的Spirng应用的全部或主要部件。利用各种输入(Java beans、JPA entities、关系表、WSDL/XML)你可以产生多种类型应用程序,包括:Spring MVC、Spring Web Flow、Google Web Toolkit (GWT) &Spring、Adobe Flex &Spring,以及 iPhone Web 应用程序。MyEclipse for Spring 还支持Web服务脚手架,以消费和生产JAX-WS web服务,包括契约优先(contract-first)和代码优先(code-first )开发。
脚手架的目的是加速应用程序开发。MyEclipse for Spring能够产生一个应用程序的各层代码,包括Web、service、domain、以及数据访问层。 我们来看看MyEclipse for Spring的两个常见用例:一是产生可运行的应用、上下文相关的例子、或功能原型;二是产生开发人员在项目中可利用的特定应用层或组件。
代码助手是MyEclipse for Spring的另一个主要特性,可以在日常开发过程中对开发者提供帮助。其目标是支持基于注解的开发。尽管大多数Java开发者都了解Java 注解的技术运用,但通常并不清楚对特定技术有什么注解可用,什么情况下应该用什么注解。例如,Spring框架对基于注解编程有很好的支持,但是其所支持的注解非常多,有些注解是所有Spring stereotypes(Spring构造型)都可用的,另外一些注解则仅对特定stereotype可用。为了给 开发者提供帮助,MyEclipse for Spring的代码助手支持基于注解的开发,通过在配置注解过程中提供援助,它可以帮助开发者了解哪些注解可用,以及在何种上下文中应该使用哪个注解。
有关MyEclipse for Spring特性的更多信息可以参见http://www.myeclipseide.com/me4s。
Q:这一版本的新增功能中什么是最重要的?
Niel: 在该8.6版中,我们增强了已有的Spring MVC脚手架功能,并增加了对Adobe Flex、Google Web Toolkit (GWT)、Spring Web Flow、以及iPhone Web的脚手架支持。这一版包含了JAX-WS和Spring stereotypes(包括Controllers、Services、Components、以及Repositories)的新代码助手。作为这一版的一个部分,我们还努力打造出更加全面的学习资料、文档以及教程,以帮助用户并给他们提供成功使用MyEclipse for Spring的所需信息。
Q:你了解正在使用你们产品做项目的客户吗?对于正在考虑使用你们解决方案的团队,怎样的开发过程才是你们所推荐的呢?
Niel: 通常,我们的客户使用MyEclipse for Spring 来加速应用开发,创建功能原型,学习新的技术,以及加速应用程序现代化。下面我来分别说明这几块。
加速应用开发
使用Eclipse的开发者拥有很多可以利用的工具,MyEclipse for Spring则增加了一个集成的代码生成功能套件。利用代码生成功能,开发者只需点几下键盘,即可精确描述其要产生什么组件。
功能原型
用MyEclipse for Spring在制作原型和产品方面没有区别,但很多客户发现从domain模型产生全套可工作应用程序的能力对制作原型特别有帮助。尤其是他们可以迭代domain模型,瞬间由domain模型重新产生应用。有一个可运行的应用,非常有助于与业务分析师推敲需求。而且,你还可以用原型作为应用程序开发的起点。
学习新技术
开发者精通一门技术有助于其学习其他新技术。开发者通常用一个简单应用或参考应用作为学习的起点,但是 MyEclipse for Spring可以让他们用自己的domain模型创建与其上下文相关的例子。比如,如果PHP开发者想学习Spring,利用已有PHP应用的数据库表,他们就可以快速产生一个Spring MVC(Spring Web Flow等等)应用。因为该应用是基于其domain模型的,因此与从网上下载的应用相比,他们对所产生的应用更加熟悉。而且,他们可以以正确的方式学习新技术,因为“与其上下文相关的例子”采用了该新技术的最佳实践。
应用程序现代化
对一个组织而言,MyEclipse for Spring对于现代化其应用非常有帮助,MyEclipse for Spring可以应用于很多场景:例如,或许某组织正从某种技术或框架向Spring迁移;或者,他们想让已有应用拥有更丰富的前端(GWT、Adobe Flex)。对这两种情况,都可以使用MyEclipse for Spring,利用他们已有应用制品来产生新应用组件的重要部分,从而跨域式实现现代化。
Q:你们产品里的脚手架是非常重要的特性,与其他解决方案如Spring Roo等相比,它有什么不同?
Niel: 首先,我本身就是Spring Roo团队成果的粉丝。我们的目标是发布额外的Spring代码生成工具,给开发者提供其他SpringSource免费选项。
我们有一个网页罗列了Roo 和 MyEclipse for Spring的主要区别,但是从更高层来看,有三个主要区别。第一个区别是开发环境使用的工具不同:MyEclipse for Spring使用的是基于Eclipse的向导和编辑器,而Spring Roo使用的是脚本语言和命令行接口。Eclipse用户已经很熟悉向导和编辑器的使用,因此使用MyEclipse for Spring几乎不用怎么学习。第二个区别是产生应用程序的应用模式不同:MyEclipse for Spring产生的应用遵循传统架构模式(Controller、Service、Domain 和 DAO),而Spring Roo则采用领域驱动设计概念(Domain Driven Design concepts:Aspects & Weaving、no Services 或 DAOs)来产生应用程序。
第三个区别是产生应用程序的类型不同: MyEclipse for Spring产生Spring MVC、Spring Web Flow、GWT、Adobe Flex及iPhone Web应用,并且同时支持Spring 2.5/3.0。所有所需第三方类库均已包含,因此MyEclipse for Spring非常适合产生当今产品应用组件。Spring Roo只能产生Spring 3.0的Spring MVC应用。Spring Roo 的一些早期访问版本也能支持其他的应用类型,但是这依赖于产品里程碑以及早期访问版本的类库和框架。
再强调一下,要想了解MyEclipse for Spring 和 Roo的其他区别,请访问http://www.myeclipseide.com/me4s/faqs/faqs_tool_comparison.php。
Q:你们项目的路线图是什么?未来将如何发展?
Niel: 在脚手架方面,我们将继续研究更多应用类型的脚手架。我们还想提供更细粒度的代码产生控制,包括通过提供自定义模板,让开发者更容易地自定义MyEclipse for Spring代码产生引擎。另外,几个新代码助手已经列入计划,敬请耐心等待。
【编辑推荐】