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、修改并提交拉取请求。这将极大地简化接收来自社区的新贡献。请查看 ROO-2708 或访问 https://github.com/SpringSource/spring-roo 获取更多信息。
- 仓库层灵活性。现在可以定义您自己的仓库层方法,同时完全了解您在 Roo 管理的 Web 层、集成测试和按需数据机制中的选择。对于那些喜欢比 Roo 1.0/1.1 的“Active Record”模型更传统分层方法的人来说,这是一个重要的进步。当然,偏爱早期方法的设计理念仍然保留,因此 Roo 仍然完全支持在实体中嵌入方便的 Active Record 风格方法。您可以在 Pizza-Shop 示例(参见发行版中的 /samples 目录)和 ROO-301 中了解有关此新特性的更多信息。
- 服务层。我们还决定解决另一个备受社区高度请求的特性:服务层支持。现在,您可以轻松添加服务层(通过 Roo 的“service”命令),并让 Roo 管理的 Web 层、集成测试和按需数据特性使用它。自定义服务层还可以与自定义仓库层同时使用,让您在构建任何您喜欢的应用程序分层时拥有完全的灵活性。您可以在 ROO-340 中阅读更多信息,并且 Stefan Schmidt 即将发布一篇博客提供更多详情。
- 灵活的 GWT 支持。 现在您可以跳过 UI,直接让 Roo 管理将您的 RequestFactory 类(EntityProxy、RequestContext 和 Locator)与您的领域模型和服务层同步。以前 GWT UI 脚手架是强制性的,但使用 1.2.0.M1,您可以更灵活地选择 Roo 如何与您的项目集成。
- MongoDB 支持。无论您是 Cloud Foundry 用户,还是仅仅是 Mongo 粉丝,我们现在都添加了对在 MongoDB 中存储实体的支持。Mongo 是一种快速、支持分片、无模式的文档数据库,支持 MapReduce,非常适合那些希望将 noSQL 与 Roo 一起使用的人。在 ROO-2693 中了解更多信息。
- 数据库逆向工程 (DBRE) 多模式支持。Roo 中最受欢迎的特性之一是 DBRE 支持,它不仅允许您从关系模式构建实体模型,还能在模式更改时自动维护该实体层。这是一种模式优先的开发方法,我们知道有用户在包含数百个表的项目中使用 DBRE。作为 ROO-1408 的一部分,我们添加了对 DBRE 同时从多个模式获取其结构的支持,事实上,您甚至可以拥有不同的模式在不同的 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