写点什么

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:173051
用户头像

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

关注

评论

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

话题讨论 | 各地都有什么特别的元宵节活动?

happlyfox

社会话题 话题讨论 28天写作 2月春节不断更 话题王者

一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理

华为云开发者联盟

容灾 备份 GaussDB(DWS) 逻辑备份 Roach

让 AI “潜入”物流中心,你的快递很快就到!

华为云开发者联盟

华为 AI 数字化 物流 智慧物流

《你越迷茫,越要去闯》读书笔记

SwiftDD

读书笔记

区块链数字版权平台--为内容版权保驾护航

13530558032

为您收录的操作系统系列 - 线程小常识

鲁米

线程

万字长文带你解读Redisson分布式锁的源码

鄙人薛某

Java redis 分布式锁 redisson

理解RocketMQ

awen

RocketMQ 翻译 消息中间件

前端HTML5面试官和应试者一问一答

我是哪吒

html 程序员 大前端 28天写作 2月春节不断更

只有两颗糖,什么时候给——再谈峰终定律

Justin

心理学 28天写作 游戏设计

手把手教你爬取优酷电影信息-2

happlyfox

学习 28天写作 2月春节不断更

Linux入门篇 —— Linux软件安装(YUM & RPM & 源码)

若尘

Linux 源码 RPM安装 rpm yum

当深度学习遇上图: 图神经网络的兴起!

博文视点Broadview

克服云安全挑战的5种方法

云计算

全面开放!华为云GaussDB(for openGauss)正式商用发布

华为云开发者联盟

数据 华为云 GaussDB 云数据库 GaussDB(for openGauss)

区块链电子证照共享平台--基于区块链的电子证照存证

13530558032

手把手教你爬取优酷电影信息-1

happlyfox

学习 爬虫 28天写作 2月春节不断更

基于matlab的控制系统与仿真5-simulink仿真模型

AXYZdong

matlab 2月春节不断更

入驻infoQ了

SwiftDD

平台写手

我看JAVA 之 Object & JNI

awen

Java jni Object

你是不是一个害怕失去,而拒绝开始的人?

SwiftDD

读书笔记 工作体会

智慧党建APP开发,智慧党建平台的功能

13530558032

水墨屏开发设备,旧 Kindle 改造而成

HelloGitHub

开源 硬件 kindle

用Vue3构建企业级前端应用,TS能让你更轻松点

华为云开发者联盟

Vue 大前端 Vue3 ts 框架

react代码切割之路由懒加载

前端小猪

React webpack

跨越异构鸿沟,Redis 迁移同步过程中的挑战与解决方案

京东科技开发者

云计算 大数据

视频号直播和 PageRank 算法 [待完善]

小匚

机器学习

(28DW-S8-Day6)区块链如何解决双重支付及防篡改

mtfelix

比特币 区块链 防篡改 28天写作 双重支付

Kafka.08 - 消息交付可靠性保障

insight

kafak 2月春节不断更

太秀了!用Excel也能实现和Python数据分析一样的功能!

JackTian

Python 数据分析 Excel 2月春节不断更 实操案例

Jira Software Data Center 可以免费使用高级路线图啦!

Atlassian

DevOps 敏捷 Atlassian Jira

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