写点什么

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

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

关注

评论

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

让AI看见——Azure OpenAI GPT-4 Turbo with Vision体验

Bruce Talk

AI Azure OpenAI GPT-4 Vision

淘宝拍立淘图片搜索接口:轻松找到同款商品!

tbapi

淘宝图片搜索接口 淘宝拍立淘接口 淘宝图片搜索API

2023 IoTDB Summit:天谋科技高级开发工程师谭新宇《优其效:如何用 IoTDB 监控工具进行深度系统调优》

Apache IoTDB

Picturesocial | 开发实践:如何在15分钟内将应用容器化

亚马逊云科技 (Amazon Web Services)

Docker ubuntu 容器 API

宇宙的尽头是带货,大模型首战在营销

脑极体

AI

左耳听风 - 程序员修炼之道「读书打卡 day 07」

Java 工程师蔡姬

读书笔记 程序员 个人成长 职业发展

深度好文:MySQL体系结构

伤感汤姆布利柏

自动化测试用例规范

无涯

自动化测试 测试开发 pytest Python自动化测试

深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

小万哥

Python 数据库 程序人生 软件工程 后端开发

浅谈新一代账务系统的高可用演进思路

鲸品堂

运营商 计费模式 方案设计

OpenSPG 新版发布:新增大模型知识抽取,3 步快速搭建专属知识图谱

可信AI进展

知识图谱 大模型 LLM

携获奖产品Crystal参加CES2024,高端头显品牌小派科技体验震撼全场

极客天地

如何优化k8s中HPA的弹性速率

华为云开发者联盟

k8s 开发 华为云 华为云开发者联盟

软件测试/测试开发/全日制|Page Object模式:为什么它是Web自动化测试的必备工具

霍格沃兹测试开发学社

赋能虚拟教学革命,实时云渲染助力复旦大学打造元宇宙教学

3DCAT实时渲染

元宇宙 元宇宙解决方案 元宇宙教学

QCA9882: The powerful engine of wireless LAN

wallysSK

极狐GitLab 线下『 DevOps专家训练营』成都站开班在即

极狐GitLab

精选LED舞台租赁屏的七项关键要素

Dylan

产品 艺术 LED LED显示屏

华为联合伙伴发布《云端控制平台与物流自动导引车通用接口指南》

华为云开发者联盟

后端 物联网 机器人 华为云 华为云开发者联盟

在 zsh 中找不到刚刚安装的 MySQL 怎么破?

escray

MySQL

字符串操作-逗号分割字符串转树形结构

alexgaoyh

自然语言处理 数据结构 字符串 数据预处理 树形

什么是二维码?带你快速了解二维码的原理

草料二维码

二维码 草料二维码 二维码生成器

智算让大模型触手可及

百度Geek说

人工智能 Prompt

如果公司业务需要频繁更换IP地址,应该如何处理?

Finovy Cloud

云计算 网络安全 IP IP地址 高防IP

Zynq7020 使用 Video Processing Subsystem 实现图像缩放

芯动大师

稳定性建设实践分享

木小风

稳定性

国内再下两城!Zilliz Cloud 全球可用服务区增至 11 个

Zilliz

Zilliz AIGC zillizcloud 云原生向量数据库

除了OneNote,还有什么值得推荐的手写笔记软件?

彭宏豪95

效率工具 在线白板 办公软件 笔记软件 boardmix

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