写点什么

Martin Lippert 谈新发布的 SpringSource Tool Suite 2.6

  • 2011-06-13
  • 本文字数:3331 字

    阅读完需:约 11 分钟

VMWare SpringSource 的 Martin Lippert 最近宣布了 SpringSource Tool Suite 2.6.0 和 2.6.1 的发布,这是一个基于 Eclipse、用于构建 Spring 应用程序的开发环境。新版本中有不少新特性,将很多项目升级到了最新版本,比如 Spring Roo 1.1.4、Eclipse Helios SR2、Groovy 1.7.8、Grails 1.3.7。新版本更新了对 Spring Roo 和 Groovy on Grails 的支持,并改善了它们的性能;还包含了一个 Spring Web Flow 的图形化编辑器、新的内容辅助支持、针对 Spring 注解的快速修复和重构。

InfoQ 采访了 Martin,了解了开发者对新版本能有何期待,以及别的一些内容。

Mike Bria,代表 InfoQ:新版本中有什么新功能可以帮助程序员使用 Spring 的基于注解的元编程吗?

Martin Lippert,就职于 SpringSource:

鉴于越来越多的 Spring 开发者正从基于 XML 的配置方式转到基于注解的 Spring 编程,我们正尝试为基于注解的 Spring 编程提供支持,就像过去在 XML 编辑器中编写 Spring 配置文件的支持一样。 首先,我们关注于配置部分的 @Autowired、@Qualifier,还为控制器做了很多支持。因此你在 Java 编辑器中有了针对 Spring 注解的自动补全和内容辅助,就像编写标准 Java 代码一样。对 @RequestMapping 的支持特别好;它包含了键入路径变量时的自动补全和内容辅助,对缺失或不完全匹配的变量的快速修复,甚至还有重构支持。当你重命名一个参数时,它会自动根据名称映射到一个路径变量上,注解中的路径变量也会随之改变。

我们的目标就是避免为那些注解提供额外的试图或特殊编辑器;让开发者留在 Java 编辑器中,在编写 Java 代码时提供尽可能多的帮助。

InfoQ:还有什么其他新的重构工具和功能(除了针对注解的)吗?

在这个最新版之前,我们就已经提供了大量自动重构功能。你可以重命名 Bean 的 id、属性等等,你所做的所有修改都会反映在 Spring 配置 XML 中。就算你重命名了一个用 @Bean 声明的方法,在你的 Spring 配置中对该 Bean 的引用也会自动改变。 尽管如此我们还是努力提供更多的改进。在 2.6.0 中,我们为 p 命名空间增加了重构支持,还增加了 advice 和 pointcut 定义的重命名支持。此外,我们在下一个版本中也计划了很多这方面的内容。

InfoQ:能否跟我们说说新的图形化 Web Flow 编辑器?

在 2.6.0 中我们为 Spring Webflow 引入了一个全新的图形化编辑器。我们和 Webflow 团队一起努力开发了一款可视化编辑器,在使用 Webflow 时你可以看到你想要的和你所需要看到的东西。不仅如此,如果你不喜欢我们设计的标准布局,你还可以改变它――它是完全可配置的!你应该看一看,这真是太美了。

InfoQ:这个版本中改善了对 Spring Roo 和 Groovy on Grails 的支持。你能解释下有什么新的东西么?

我们一直想包含最新的 Spring Roo,为它提供全方位的支持。这就是为什么我们要在 4 月 12 日发布 2.6.0.SR1,在 5 月 18 日发布 2.6.1.SR1。我们将继续跟着 Roo 发布新的版本。总的来说,基本的 Roo 支持很稳定、很成熟。 在 Groovy 和 Grails 方面有不少动作,我们正努力为 Grails 提供最好的开发者体验!为了这个目标,我们大幅改进了 Eclipse 底层的 Groovy-as-a-language 支持,添加了更好的(更可配置的)语法高亮、类似“内嵌重命名”的重构改进、对 Groovy++ 的早期支持,还有一些编译性能改善。在 Grails 方法,我们增加了从 gsps 跳转到标签定义的支持,还增加了直接调用新 Grails 构件向导的菜单项,可能的话,还要保证那些向导可以基于上下文做预填充。我们相信这能让 Grails 的开发更有乐趣。

InfoQ:能够部署到一个基于云的环境中是许多开发者日益增长的需求。新版本在这方面做的如何?

4 月 12 日 Cloud Foundry 发布了,我们也提供了 Cloud Foundry 的 STS 支持。这允许使用 Cloud Foundry 的开发者直接在 STS 里将它们的应用部署到云里。无论你是将应用完全托管在 cloudfoundry.com 上还是部署在开发环境的本地微型云,甚至是开发机上,它都可以支持的很好。你可以启动或停止云中的应用,为它们分配服务,浏览远程文件系统,这些都可以直接在 STS 中完成。

InfoQ:我在 ToolSuite 2.5 里看到过“基于代理重新加载”(Agent-based reloading)的介绍。我想很多开发者并没有意识到这一特性,或者是至少没有意识到该特性为他们提供了什么。你能跟我们谈谈这个特性么,在 2.6 里它又有什么新的内容?

“基于代理重新加载”是一个很棒的特性。但它还处于初期阶段,因此我们并没有着重介绍它。在使用 tc Server 时,它可以在很大程度上减少等待应用重新部署的时间。应用运行于 tc Server 中并开启该功能时,很多代码变更可以立刻反映在运行的应用程序中,无需重启服务器。 当然,这听起来和调试 Java 应用时的热代码替换(hot-code-replacement)很类似,但它实际远不限于此。有了它,你可以在应用程序运行时添加 / 删除 / 修改方法,甚至成员变量。代理会负责将那些变更推送给运行中的应用程序,不会丢失对象的状态;完全不用重启或重新部署应用程序,重启服务器。

我要重申一下,它还处在初期阶段,我们正持续改进它――近期的主要关注点将是保证对 Spring 配置的变化能正确反映在运行中的应用程序里。最近的改进中添加了对 Groovy 和 Grails 应用程序的支持。

InfoQ:能否告诉我们新版本中对 AspectJ Dev Tools 的增强?

可以这么说,AJDT 中最近的特性 / 变更的主要驱动力是 Spring Roo 和 Spring Data 项目。虽然方式很不同,但两者都大量使用了切面;例如,Spring-Data 大量使用了通用切面。 在处理 AspectJ 代码时,所有这些变化都为编辑器提供了更平滑的体验,保证你想做的任何动作里都用到了 AspectJ 构造器。例如,搜索 / 重构操作都能意识到中间类型(intertype)声明,并做相应处理。

InfoQ:同样与 AspectJ 有关,你们也对 JDT 织入做了一些变更。能说明一下吗?

实际上,最近我们默认开启了 JDT 织入。AJDT 用 JDT 织入来多“开启”一点 Eclipse,以便 UI 扩展(比如 AJDT)能实现它们需要的功能。JDT 织入实际使用了 AspectJ 在 Eclipse 启动时织入其中,使用了 Equinox Aspects 孵化项目中开发的技术。这项技术我们已经使用了一段时间,但过去它总是“opt-in”——在最近的版本中已经默认开启了,因为它已经证明了自己的可靠性和健壮性。

InfoQ:据说 ToolSuite 的团队在一个较为分散的团队中使用了有纪律的敏捷过程。能稍微就关键的方面展开说一下你们是怎么做的吗?

STS 的开发团队确实是一支遍布在全球的分散的团队。成员主要是在加拿大和德国,但整个团队总共遍布在 5 个城市里,我们运用了敏捷方法。我们有一个略微定制过的敏捷过程,结合了 Scrum 和看板中的技术,因此我们有一个持续改进的带优先级的 backlog,通过 Skype 做每日 Scrum,还有一些别的东西。 但我认为对外界而言,最显著的、最能看到的变化是我们的发布周期。我们大概每三个月就能发布一个新的 STS 版本,每个版本之间还包括两个公开里程碑版本。这让我们能以规则的步伐来发布新特性和其他改进。人们很感兴趣的新特性可以在里程碑版本中让他们提前使用。我们很希望 Spring 社区中能有更多的人参与到这个过程之中。对我们开发工具而言,反馈是必不可少的,任何来自社区的反馈或建议都是我们的无价之宝。

InfoQ:最后,下一个版本的 backlog 里有什么热点内容吗?开发者可以期待些什么呢?

我们目前正在努力改进 Cloud Foundry 集成功能,为 Cloud Foundry 和 STS 提供更深的整合。下一件大事当然是支持接下来发布的核心 Spring 框架的 3.1 版本。对新的“profiles”特性的支持将尤其出色,你会喜欢它的。 在 2.7 的开发过程中,我们与 Gradle 团队紧密配合,希望能为 Eclipse 提供 Gradle 支持。我们还将继续改进 Grails 中的重构支持,提供智能重命名,它能理解构件之间的关系,一并重命名(简单的例子:在重命名领域类时重命名你的测试类)。

我们还开放了 Groovy-Eclipse,让那些使用自定义 DSL 的人能更方便地进行扩展——提供一段简单的 Groovy 脚本就能扩展 Groovy 编辑器的内建推论和代码辅助功能。我们自己也会拓展这一特性,支持 Grails 中用到的多种 DSL。我们相信这一定会开启无限可能。

谢谢 Martin!

查看英文原文: Martin Lippert on the newly released SpringSource Tool Suite 2.6

2011-06-13 09:173336
用户头像

发布了 135 篇内容, 共 64.6 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

Native Instruments KOMPLETE 12系列音乐制作套装 Mac版

Rose

中昊芯英创始人及董事长杨龚轶凡荣获2025年度新时代青年先锋奖​

科技热闻

UnlockGo for Mac:一键绕过 Apple ID 锁,轻松解除设备限制

Rose

《算法导论(第4版)》阅读笔记:p7-p8

codists

算法

跨平台youtube音乐转换器:MediaHuman YouTube to MP3 Converter

Rose

立夏 | 立足当夏,向阳而生

中烟创新

区块链 App 的开发

北京木奇移动技术有限公司

区块链技术 软件外包公司 APP开发公司

什么是开放数据湖(Open Data Lake)?

镜舟科技

数据湖 数据存储 开放格式 多结构化数据 开放接口

假期结束!上上强度!

王中阳Go

go面试题

微店商品详情API接口(附代码示例)

tbapi

微店商品详情接口 微店API 微店数据采集 微店商品详情采集

基于 Amazon Bedrock 的电商行业图片检索解决方案

亚马逊云科技 (Amazon Web Services)

HPE推出零信任网络与私有云运维解决方案

科技热闻

Nuxt3还能用吗?

溪抱鱼

Vue SEO nextjs nuxt next

隐私安全 + 多场景适配:AnyGo for Mac 重新定义虚拟定位体验

Rose

Dimension 2020中文版(附dn2020激活补丁)mac/win

Rose

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS Dell (戴尔) 定制版

sysin

esxi

AI 搜索开放平台 x Qwen3:智能搜索全栈解决方案新升级

阿里云大数据AI技术

人工智能 AI搜索 Qwen3

qwen模型 MindIE PD分离部署问题定位

AI布道Mr.Jin

KWDB 社区最近又偷偷整活了?

KaiwuDB

数据库 kwdb

北电数智星火,照亮数字中国的AI生产力图景

脑极体

AI

如何挑选一款优质的舞台租赁LED显示屏?

Dylan

LED LED display LED显示屏 舞台表演 LED屏幕

区块链 App 的测试

北京木奇移动技术有限公司

区块链技术 软件外包公司 APP外包公司

从工具到伙伴:轻帆云智能ITSM引领服务提供商(MSP)重构IT服务管理新范式

云智慧AIOps社区

ITSM ITSM软件 工单管理系统 工单管理

区块链 App 的安全性

北京木奇移动技术有限公司

区块链技术 APP开发 软件外包公司

Scrutiny 9 for mac 网站SEO优化工具

Rose

如何打造一个高并发系统?

量贩潮汐·WholesaleTide

高并发

MWeb Pro for mac 博客生成编辑器

Rose

macOS Sequoia 15(Macos15系统)安装包分享

Rose

UCUXD,设计师的AI-UX成长笔记

科技热闻

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS IEIT SYSTEMS (浪潮信息) 定制版

sysin

esxi

Splunk Enterprise:实时数据分析与可视化

Rose

Martin Lippert谈新发布的SpringSource Tool Suite 2.6_Java_Mike Bria_InfoQ精选文章