Spring Roo 团队很高兴地宣布我们的第一个 1.2.0 里程碑版本已发布。 Roo 1.2.0.M1 版本延续了 Roo 的愿景,即快速轻松地构建基于 Spring 的企业 Java 应用程序。 我们倾听了社区的意见,并在本次发布中包含了一些最受关注的功能
- 速度提升十倍(!)。 我们知道很多人都在大型项目中使用 Roo,因此我们继续关注 Roo 内部结构,以确保它能够平稳快速地运行。 通过关注分析、文件监控、磁盘 I/O、XML 模型和往返,我们将 Roo 在大型基准项目中的性能提高了 10 倍。
- 现在采用 Apache 许可。 在 Roo 1.0/1.1 中,我们使用 GPL 许可证来鼓励在 Roo 中进行的任何改进与社区共享。 为了回应反馈,我们已转向 Apache Software License 2 (ROO-2253),因此您可以完全灵活地在商业和非商业项目中使用 Roo。 这也使 Roo 与大多数其他 Spring 项目保持一致。
- 已迁移到 GitHub。 社交编码正在兴起,GitHub 已成为开源源代码管理的事实标准网站。 我们很高兴将 Roo 的代码库迁移到 GitHub,以便您可以轻松地 fork 它、进行更改并提交 pull request。 这将大大简化接收来自社区的新贡献。 请查看 ROO-2708 或访问 https://github.com/SpringSource/spring-roo 了解更多信息。
- 存储库层灵活性。 现在可以定义自己的存储库层方法,完全了解您在 Roo 管理的 Web 层、集成测试和 data-on-demand 机制中的选择。 对于那些喜欢比 Roo 1.0/1.1“Active Record”类似模型更传统的分层方法的人来说,这是一个重要的进步。 当然,仍然保留着早期方法所偏爱的理念,因此 Roo 仍然完全支持在实体中嵌入方便的 Active Record 样式方法。 您可以在 Pizza-Shop 示例(请参阅发行版的 /samples 目录)和 ROO-301 中了解有关此新功能的更多信息。
- 服务层。 我们还决定解决另一个备受关注的社区功能:服务层支持。 您现在可以轻松添加服务层(通过 Roo "service" 命令),并让 Roo 管理的 Web 层、集成测试和 data-on-demand 功能使用它。 自定义服务层也可以与自定义存储库同时使用,让您可以完全灵活地构建您喜欢的任何应用程序分层。 您可以在 ROO-340 中阅读更多信息,Stefan Schmidt 将很快发布一篇博客,提供更多详细信息。
- 灵活的 GWT 支持。 现在您可以跳过 UI,只需让 Roo 管理将您的 RequestFactory 类(EntityProxy、RequestContext 和 Locator)与您的域模型和服务层同步。 以前,GWT UI scaffolding 是强制性的,但在 1.2.0.M1 中,您可以更具选择性地选择 Roo 与项目的集成方式。
- MongoDB 支持。 无论您是 Cloud Foundry 用户,还是只是 Mongo 爱好者,我们现在都添加了对将实体存储在 MongoDB 中的支持。 Mongo 是一种快速、分片感知、无模式的文档数据库,支持 map-reduce,非常适合那些想要将 noSQL 与 Roo 结合使用的人。 在 ROO-2693 中了解更多信息。
- 数据库逆向工程 (DBRE) 多 Schema 支持。 Roo 中最受欢迎的功能之一是 DBRE 支持,它不仅允许您从关系 schema 中 scaffold 实体模型,还可以随着 schema 的更改自动维护该实体层。 这采用了一种 schema 优先的开发方法,并且我们知道用户在具有数百个表的项目中使用 DBRE。 作为 ROO-1408 的一部分,我们添加了对 DBRE 从多个 schema 同时获取其结构的支持,实际上,您甚至可以拥有不同的 schema 来管理不同 Java 包中的实体。
- Shell 改进。 很多人都喜欢 Roo 的可用性,实际上,该 shell 已经进入了许多其他 VMware 产品。 我们很高兴许多小修复已进入 JLine 1.0 (ROO-2608) 进而进入 Roo shell(例如,退格到上一行终于可以工作了!)。 您还可以通过“!”运算符 (ROO-2457) 直接从 Roo shell 运行操作系统命令,并且启动时的 shell 现在会显示最新的社区推文 (ROO-2677)。
如您所见,我们对 Roo 1.2 进行了许多增强,并期待您的反馈。 我们在下一个 Roo 1.2 里程碑中还有许多令人兴奋的新功能,包括 JSF/PrimeFaces (ROO-516) 支持和 多模块 Maven (ROO-120) 项目支持。 这两个也是备受关注的社区功能。
请记住,这是一个里程碑版本,因此您应该继续使用 Roo 1.1.5 用于生产项目。 但是,您可能希望通过试验随附的示例项目来探索 Roo 1.2.0.M1 中的这些新功能。
我们希望您喜欢这个新版本。 请通过 社区论坛分享您的经验,关注 @SpringRoo 获取最新消息,或在您的推文中使用 #springroo
Alan Stewart, 项目负责人 - Spring Roo