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软件许可2(ROO-2253),因此您可以在商业和非商业项目中如何使用Roo方面拥有完全的灵活性。这还使Roo与大多数其他Spring项目保持一致。
- 已迁移到GitHub。社交编码正在兴起,GitHub已成为开源代码管理的实际站点。我们很高兴将Roo的代码库迁移到GitHub,以便您可以轻松地派生它、进行更改并提交拉取请求。这将极大地简化接收来自社区的新贡献。请查看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是一个快速、支持分片、无模式的文档数据库,支持map-reduce,非常适合那些希望将noSQL与Roo一起使用的人。在ROO-2693中了解更多信息。
- 数据库逆向工程(DBRE)多模式支持。Roo中最受欢迎的功能之一是DBRE支持,它不仅允许您从关系模式中搭建实体模型,还可以随着模式的变化自动维护该实体层。这采用了一种模式优先的开发方法,我们知道有用户在包含数百个表的项目中使用DBRE。作为ROO-1408的一部分,我们增加了DBRE同时从多个模式获取结构的支持,您甚至可以拥有不同的模式在不同的Java包中管理实体。
- Shell改进。许多人喜欢Roo的可用性,而且shell已经进入了许多其他VMware产品。我们很高兴JLine 1.0中包含了许多小修复(ROO-2608),进而也进入了Roo shell(例如,退格到上一行终于可以工作了!)。您还可以通过“!”操作符直接从Roo shell运行操作系统命令(ROO-2457),并且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
阿兰·斯图尔特,Spring Roo项目负责人