QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

将比特币安全性带到Persistence One

股市老人

ai智能写作网站免费!5款工具轻松生成高质量内容!

彭宏豪95

人工智能 写作 在线白板 AIGC AI工具

《龙蜥理事说》正式上线,龙蜥携手浪潮信息共同应对 AI 时代新需求

OpenAnolis小助手

开源 操作系统 国产操作系统 龙蜥社区

Cloud Kernel SIG 月度动态:ANCK 特性新增芯片厂商支持、新版本发布

OpenAnolis小助手

操作系统 国产操作系统 龙蜥社区 龙蜥社区SIG

智算创新 云峦同行!龙蜥衍生版浪潮信息 KeyarchOS 的 10 年发展历程

OpenAnolis小助手

开源 操作系统 国产操作系统 龙蜥社区

5大支撑能力,6大系统优势!解读龙蜥场景化镜像平台技术

OpenAnolis小助手

AI 操作系统 国产操作系统 龙蜥社区

WorkPlus智能AI助理:定制化部署,拓展企业协作新境界

BeeWorks

RAG 修炼手册|RAG 敲响丧钟?大模型长上下文是否意味着向量检索不再重要

Zilliz

大模型 Zilliz 向量数据库 rag

提升龙蜥内核测试能力!探究持续性模糊测试优化实践

OpenAnolis小助手

操作系统 国产操作系统 龙蜥社区 Anolis OS

NVIDIA AI 新网络助力龙蜥提升网络通信速率

OpenAnolis小助手

AI 操作系统 国产操作系统 龙蜥社区

十万奖金等你来拿!中国研究生操作系统开源创新大赛火热开启

OpenAnolis小助手

操作系统 国产操作系统 龙蜥社区 人人都可以参与开源

Go连接池复用踩坑

三七互娱后端技术团队

golang

WorkPlus Meet构建局域网视频会议解决方案,助力企业协同与沟通

BeeWorks

Partisia Blockchain:如何做到兼顾隐私、高性能和可拓展?

西柚子

体验 AIGC 魅力!龙蜥社区邀请您从零开始部署运行 GPT-2 大语言模型

OpenAnolis小助手

操作系统 国产操作系统 龙蜥社区 人人都可以参与开源

WorkPlus最佳的内网通讯软件解决方案,助力企业构建高效沟通环境

BeeWorks

一文读懂兼顾隐私、高性能和可拓展的公链Partisia Blockchain

加密眼界

英特尔锐炫最新驱动首日支持国产武侠大作《射雕》,开启流畅武侠之旅!

E科讯

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