领先一步
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的项目,我们鼓励您查阅参考指南中包含的特定版本的升级说明。参考指南也以HTML和PDF格式包含在下载的ZIP文件中。
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附加组件发现的形式。您可以在参考指南章节中阅读有关此新功能的更多信息。
标准(非云、非DBRE)基于JPA的Roo应用程序也提供了一些新的持久性功能。其中包括对并发使用多个数据库的支持,以及在实体上指定版本字段。
Roo 1.1.1中,我们内置的两种Web技术都得到了改进。
自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 MetadataProviders提供更灵活的类级别下游解析,以及自动无限元数据循环检测和重试功能。最后,我们增强了许多文件系统内部机制,例如延迟文件写入,甚至延迟文件删除,这有助于在多次通过中创建复杂的ITD元数据。
所有这些增强功能都使得编写能够满足非常复杂的ITD和元数据要求,同时性能极佳且易于调试的附加组件变得更容易。Roo 1.1.2(并且已经在Git主分支中)还将提供显著增强的元数据日志记录,如果您正在开发基于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标签,以便其他人可以轻松看到它们。
我们希望您喜欢这个新版本。