领先一步
VMware 提供培训和认证,以加快您的进度。
了解更多我们很高兴地宣布 Spring Roo 1.1.1 正式发布。此新版本包含 超过250个修复和增强,包括许多性能和功能改进。
与以往一样,SpringSource Tool Suite (STS) 2.5.2 将很快发布,并包含此新版本的 Spring Roo。您也可以 下载 Spring Roo 1.1.1 的独立版本并立即开始使用。
让我们简要回顾一下添加到 Roo 1.1.1 中的一些更值得注意的增强功能。如果您正在升级基于 Roo 的项目,我们建议您查看我们包含在 参考指南 中的 特定版本升级说明。参考指南也包含在下载的 ZIP 文件中,包括 HTML 和 PDF 格式。
Roo 团队始终关注 Roo 的性能、占用空间和可用性。
已经实现了一些显著的性能改进,在许多常见情况下,Roo 的运行速度提高了一倍。例如,运行“roo script clinic.roo”以创建 Petclinic 示例,在同一台机器上使用 Roo 1.1.0 需要 25 秒,而使用 Roo 1.1.1 仅需 11 秒。我们还继续分析和增强 Roo 内部功能,以在 1.1.2 中提供 更好的性能分析 和结果。
可用性已通过多种方式得到增强。我们 显著地 扩展了 文档,特别是关于数据库反向工程和 JDBC 驱动程序安装的处理。Roo 1.1.1 还包含几个新的 shell 功能,使 Roo 更易于使用。这些功能包括如果向 Roo 命令提供未知选项则 报告错误、不区分大小写 的命令选项解析、更好的消息 和 更有帮助的提示。
我们还稍微减少了 Roo 的占用空间。Roo 1.1.0 发行版 ZIP 文件大小为 7.2 MB,而 Roo 1.1.1 现在为 6.8 MB,尽管增加了新功能。虽然这不是一个显著的下载大小减少,但 Roo 并没有随着每个版本的发布而变得更大,而是朝着相反的方向发展,这一点很好。
大多数使用 Roo 的人都在构建企业级 Java 应用程序。持久化是此类应用程序的关键需求,因此我们继续增强 Roo 1.1.1 中的持久化功能。
Roo 1.1.1 现在更好地支持云持久化。特别是,此新版本 增强了对 VMforce 的支持,包括升级到 Data Nucleus 2.1.3。我们还改进了 Google App Engine (GAE) DataStore 支持。Roo 现在通过其类型间声明 (ITD) 提供 特殊的 GAE 关系处理。这意味着您现在可以调用 GAE 关联对象的访问器和修改器方法,Roo 将在内部管理标识符持久性和对象检索语义。
在 Roo 1.1.0 中引入的增量数据库反向工程 (DBRE) 功能已被证明非常受欢迎,社区提供了大量反馈并提出了新的增强请求。此功能的质量持续改进,新支持包括 用户指定要包含或排除的表、DBRE 管理实体的自动 集成测试 以及对 DBRE 表之间的多个关系 的支持。
人们经常问我们关于 Roo 1.1.0 的一个方面是如何在没有随 Roo 一起提供 JDBC 驱动程序的情况下内省数据库。这导致我们发布了一个人们可以使用来安装常用驱动程序的临时脚本,但这对于所有可用的 JDBC 数据库驱动程序来说都是不切实际的。因此,在 Roo 1.1.1 中,我们添加了对 通过 Roo 的扩展附加组件机制自动发现和安装任何 JDBC 数据库驱动程序 的支持。当您首次尝试在 Roo 1.1.1 中执行 DBRE 操作时,如果未安装 JDBC 驱动程序,您将看到一个搜索结果,其中显示适合的附加组件以及用于安装它的命令。最重要的是,社区中的任何人都可以为不受支持的数据库创建一个新的 JDBC 附加组件,并将其提供给所有 Roo 用户。我们甚至添加了一个 新的附加组件创建者模板,专门用于将 JDBC 驱动程序包装成适合 Roo 附加组件发现的形式。您可以在 参考指南章节 中阅读更多关于此新功能的信息。
基于 JPA 的标准 (非云、非 DBRE) Roo 应用程序也提供了一些新的持久化功能。这些功能包括对 同时使用多个数据库 的支持,以及在实体上指定 版本字段。
我们内置的两种 Web 技术在 Roo 1.1.1 中都得到了改进。
自 Roo 1.1.0 以来,Google Web Toolkit (GWT) 支持得到了大幅增强。原始实现中的许多查询的一个来源是如何修改 Roo 管理的代码。在 Roo 1.1.1 中,我们现在通过引入一个伪 ITD 模型来全面解决此需求。很容易识别 Roo 正在管理的 GWT 源文件,因为这些文件采用了与普通 Roo 应用程序类似的文件名约定 (即 *_Roo_Gwt.java)。这意味着您对文件所做的任何更改 将由 Roo 保留。我们还添加了对新 GWT 2.1.1 功能的支持,例如代理实体中的继承。
使用 Roo 构建 Spring MVC 应用程序的人们也将在 1.1.1 中享受一些新的好处。首先,对 JSON REST 控制器有更全面的支持。还有一个新的 集中式 ConversionService 来替换以前的控制器特定转换器,因此如果您正在开发基于 Roo 1.1.0 的 MVC 项目,则应查阅前面提到的 升级说明。增量数据库反向工程 (DBRE) 兼容性也得到了改进,特别是通过 对复合主键的 Web 层支持。我们还对 内容类型进行了调整,以便您可以更轻松地使用除 Apache Tiles 之外的其他模板框架,并升级到 Spring Security 3.0.5。
在 Roo 1.1.0 中首次引入的 附加组件发现和安装功能得到了持续改进。您会发现现在有 更好的附加组件搜索功能,具有内置关键词匹配、基于排名的排序、灵活的行格式、版本兼容性和受信任的开发者功能。去中心化的基于 PGP 的安全基础设施现在也更兼容于 代理服务器后面的用户,并且我们已将新的附加组件搜索功能整合到 shell 的 未知命令解析器 和 JDBC 驱动程序定位器中。所有这些都意味着在 Roo 中查找和安装新功能的体验更简单、更容易。
附加组件或插件模型中最困难的问题之一是如何让人们识别哪些扩展值得使用。如果许多扩展不值得使用、已损坏或未维护,那么拥有数百个工具扩展是没有意义的。我们决定通过让 Roo 自动收集关于人们正在使用哪些公共附加组件的匿名信息 并将这些汇总信息整合到附加组件搜索结果中来解决这个问题。当然,只有在您同意 Roo 收集此信息的情况下才会发生这种情况,并且在任何时候都不能使用收集到的信息来识别您或您的项目。同样,Roo 现在也允许社区对他们正在使用的附加组件提供 可选反馈(例如评分和评论),此反馈包含在附加组件搜索结果中。这些功能提供了一种非常有效的方法来自动确定附加组件的流行度,而无需用户经历访问网站进行投票和评论等不便。
Roo 1.1.1 还包括 Spring 用户代理分析 (UAA) 支持。UAA 启用上述附加组件排名数据收集功能,并帮助我们收集有关 Roo 使用情况的匿名信息。此信息极大地帮助我们实现互操作性(因为我们知道人们在项目中一起使用哪些常见的公共技术)并确定我们的路线图的优先级。此功能默认情况下处于禁用状态,如果没有获得您的同意,将不会运行。如果您想了解更多关于 UAA 及其如何确保您隐私的信息,请参阅 UAA 常见问题解答。
最后,Roo 1.1.1 提供了许多新的特性和增强功能,以帮助插件开发者构建插件。首先,我们通过“addon create”命令提供了更完整的示例。有一些新的实用程序类用于在捆绑包中查找资源,以及显示文本文件和控制过滤器位置。线程名称可以从控制台输出中抑制,并且对内部类型和更复杂的 Java 编译单元创建提供了额外的支持。开发模式还提供了许多新特性,例如深入日志记录、文件系统操作的 SHA1 代码以及如果出现问题则取消自动撤销(以帮助您查看生成的文 件)。元数据层已经有很多增强,包括通过 AbstractMemberDiscoveringItdMetadataProvider 提供的更好的元数据扫描模型,更灵活的类级别下游解析用于 ITD 元数据提供程序,以及自动无限元数据循环检测和重试功能。最后,我们增强了许多文件系统内部结构,例如延迟文件写入甚至延迟文件删除,这有助于在多个过程中创建复杂的 ITD 元数据。
所有这些增强功能都使编写能够解决非常复杂的 ITD 和元数据需求的插件变得更容易,同时还能使它们性能极佳且易于调试。Roo 1.1.2(以及已经在 Git master 中)中还将显著增强元数据日志记录,如果您正在开发基于 ITD 的插件,这可能会让您感兴趣。
我们探讨了Spring Roo 1.1.1 中包含的 250 多个修复和增强功能中的一部分。无论您是使用 Roo 构建企业项目,还是为 Roo 社区构建插件,我们都致力于在这个新版本中显著改进您的 Java 开发体验。
别忘了STS 2.5.2 即将发布,它将嵌入 Roo 1.1.1 和其他对开发基于 Roo 的应用程序有用的技术。您现在也可以下载 Roo 1.1.1 并立即开始使用它。
如果您对这个新版本有任何疑问,请在Spring Roo 社区论坛上提出。您也可以通过 Twitter关注开发团队成员以获取最新的开发更新,并关注 @SpringRoo 以获取未来的版本发布公告。请在您发布的关于 Roo 的任何推文中使用#springroo,以便其他人可以轻松地看到它们。
我们希望您喜欢这个新版本。