HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

项目经理的职责和权限分别是什么?

万事ONES

项目管理 ONES 项目经理

JAVA 九种排序算法详解(中)

加百利

Java 数组 排序 7月日更

真happy软件开发|真happy系统APP开发

【Flutter 专题】96 图解 Draggable + DragTarget 基本拖拽效果

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

Rust从0到1-Cargo-发布到Crates.io

rust 发布 cargo crates.io publish

架构之:微服务和单体服务之争

程序那些事

微服务 系统架构 软件架构 程序那些事

UD众筹链/UD生态系统APP开发详情

IPC阿波罗公链软件系统开发搭建

如何做需求分析?

万事ONES

产品经理 需求分析 ONES

Go 学习笔记之 整型数据类型

架构精进之路

Go 语言 7月日更

聚星公社软件开发|聚星公社APP系统开发

北鲲云超算平台——致力于提高科研效率,降低计算成本的云超算平台

北鲲云

快看吧系统开发|快看吧软件APP开发

BHDEX币挖矿APP系统开发内容

XRP瑞波币系统开发|XRP瑞波币软件APP开发

2022秋招vue面试题+答案

buchila11

Vue Vue 3

Vue.js+ElementUI+vant生成动态表单配置

二郎神杨戬

7月日更

JavaScript数组详解-全网最全

二郎神杨戬

7月日更

Camtasia实用技巧之智能聚焦

淋雨

视频剪辑 Camtasia 专业录屏

如何给MindSpore添加一个新的硬件后端?快速构建测试环境!

华为云开发者联盟

AI 模型 框架 mindspore

Redisson 分布式锁源码 03:可重入锁互斥

程序员小航

redis 源码 分布式锁 redisson

富文本编辑器之游戏角色升级ing

vivo互联网技术

Java 大前端 富文本 富文本编辑器

根据舌苔判断身体状况

kof11321

微摩尔WMO软件系统开发介绍

多标签分类中的损失函数与评价指标

月来客栈

PyTorch 多标签 多标签分类 文本分类

海洋之星系统开发|海洋之星软件APP开发

社交软件上“你可能认识的人”到底是怎么找到你的?

华为云开发者联盟

知识图谱 社交软件 TransE模型 用户画像 知识图谱补全

@Autowired报错原因分析和4种解决方案!

王磊

Java spring springboot @Autowired注入原理 Autowired

一条SQL语句执行的背后

卢卡多多

log sql 更新 执行顺序 7月日更

联想科技产业行——大众集团走进联想:智慧科技赋能汽车行业智能化变革

科技大数据

科技互联网 新未来 联想

GIN钱包挖矿系统开发|GIN钱包挖矿软件APP开发

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