领先一步
VMware 提供培训和认证,助您加速发展。
了解更多Spring Roo 是一款轻量级的开发者工具,能够快速轻松地交付即时成果。最棒的是,您 100% 使用 Java 编码,并且可以重用您现有的所有 Java 知识、技能和经验。您会喜欢它的——而且也会从中获得很多乐趣!阅读 TomTom 如何使用 Spring Roo 将开发时间缩短一半。
下载 Josh Long 和 Steve Mayzak 撰写的图书:Getting Started with Roo。您也可以从 O'Reilly 网站购买按需印刷版或其他格式的图书。
Ken Rimple 和 Srini Penchikala 还撰写了权威的 Roo 参考书,书名为 Spring Roo in Action,可从 Manning Publications 购买。
使用 Roo 构建基于 JPA 的 MVC 应用轻而易举,它也让您轻松进入下一代技术。我们已经支持 Google Web Toolkit (GWT) 用于先进的下一代用户界面、Solr 用于搜索服务器集成以及 Google App Engine 等云部署等很酷的特性。此外,我们还在积极开发增量数据库自省、Flex、Spring Integration 等更多功能。
SpringSource 和 Google 正在合作,将 Spring Roo 的开发速度与 Google Web Toolkit (GWT) 的强大功能结合起来,构建丰富的浏览器应用。立即尝试 Spring Roo 1.1 中提供的令人兴奋的 GWT 和 Google App Engine 支持。
使用 Roo,您仍然完全用 Java 编程。其创新方法完全在编译时运行,并与您的 IDE 完全兼容。此外,由于没有运行时部分,采用也更简单、风险更低。您的所有 Java 开发人员都会感到舒适,并从第一天起就富有生产力。Roo 真正代表了不打折扣的生产力。
Spring Roo 是一款面向 Java 开发人员的下一代快速应用开发工具。使用 Roo,您可以在几分钟内轻松构建完整的 Java 应用。它与其他生产力工具的不同之处在于专注于:
|
|
Roo 让您可以轻松快速地访问所有重要的主流 Java 技术,这些技术对于构建复杂的企业应用至关重要。以下只是 Roo 项目可以即时利用的一些技术(还有更多由第三方附加组件支持,或者您可以自己编写附加组件):
|
|
|
Roo 的创新方法没有任何妥协
简而言之,Roo 是一个轻量级的控制台 shell,您在开发项目时加载它。虽然 Roo shell 可以用一个快速命令完成耗时的操作,但大多数时候您只会忽略 Roo,然后在您的 IDE 或文本编辑器中开发您的项目。
当您以正常方式编辑代码时,Roo 会监控您的项目文件,并根据您的操作自动修改它们。根据您运行的 Roo 附加组件,Roo 可以帮助您处理不同类型的文件。例如,Roo 的 JPA 附加组件意味着您可以编写一个非常简单的 Hello.java 文件,如下所示:
@RooJpaActiveRecord public class Hello { private String world; }
您可能会想,一个只有单个私有字段的 Java 类有什么用呢?嗯,用处不大。但是 Roo 通过使用编译器的“mixins”特性在编译时(而非运行时)向 .class 文件中添加额外的好东西来解决这个问题。这意味着 Hello.class 实际上包含大量有用的成员,而所有这些都不需要您自己费力去编写——或维护、调试和测试
public class Hello { private String world {..} public String getWorld() {..} public void setWorld(String world) {..} public Long getId() {..} public void setId(Long id) {..} public Integer getVersion() {..} public void setVersion(Integer version) {..} public String toString() {..} public void persist() {..} public void remove() {..} public void flush() {..} public static Long countHellos() {..} public static Hello findHello(Long id) {..} public static List findAllHellos() {..} public static List findHelloEntries(int start, int finish) {..} // there are even more methods }
Roo 方法的巧妙之处在于,您的 Hello.java 文件没有任何冗余代码和工作量,但您的 Hello.class 文件却非常有用,并且与您的 IDE(代码辅助、调试等)和运行时环境完全兼容(没有 Roo 依赖或其他妥协)。此外,因为它只是一个普通的 Java 类,它在运行时表现出色,并且不消耗额外的运行时内存。Roo 完全支持往返编辑,并在您开发实体时维护 mixins。例如,如果您添加另一个字段,Roo 会立即生成 getter/setter 并更新 toString() 方法。如果您添加一个 @Id 字段,Roo 将停止生成其标识符字段,您的将优先。如果您自己编写 toString() 方法,您的当然会使用,而 Roo 的将消失。实际上,如果您注释掉您的 toString() 方法,Roo 的将立即返回。这一切都非常简单(而且也很有趣!)。
上面并非立即显而易见的更细微的因素是,@Roo* 注解是“源码保留”的。这意味着它们不会出现在 .class 文件中,这反映了 Roo 的“零锁定”和“无运行时”策略。此外,您可以通过将生成的 mixin 源码内容直接复制到您的 .java 文件中来轻松摆脱 Roo。实际上,Eclipse 中甚至有一个重构命令可以在几秒钟内为您完成此操作!哦,如果您不想编写 Hello.java 源码文件,您也可以只使用两个支持 TAB 补全的 Roo 命令来完成它:“entity --class Hello”、“field String world”。就像我们说的,这一切都非常简单(而且也很有趣!)。
Roo 的方法为您提供了无锁定、高性能生产力工具的最佳体验。它就是能用。试一试,亲身体验一下。或者查阅我们的参考指南,了解更多关于为什么选择 Roo 作为您的生产力工具的原因。
开始使用 Roo 非常容易。只需按照本页上的步骤操作,您就可以在几分钟内拥有一个运行环境。
Roo 需要您下载并安装
要获取 Roo,您可以下载其独立的命令行 shell 版本,或使用 SpringSource Tool Suite 中内置的版本。如果您愿意,也可以下载两者并一起使用
如果您下载了独立的 Spring Roo,只需将其解压缩到您选择的位置。然后
如果您想看看安装 Roo 后使用它有多么容易,这个视频将向您展示。或者,完成以下步骤并自己尝试。
让我们构建一个项目。我们将省略以下步骤中的控制台输出。我们还强烈建议您在每个步骤后输入“hint”,以帮助学习使用 shell。请注意,您需要 Roo 1.2.0 或更高版本才能执行这些命令
mkdir hello cd hello roo roo> hint roo> project --topLevelPackage com.foo roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
roo> entity jpa --class ~.Timer --testAutomatically roo> field string --fieldName message --notNull roo> hint web mvc roo> web mvc setup roo> web mvc all --package ~.web roo> selenium test --controller ~.web.TimerController roo> web gwt setup roo> web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request
roo> perform tests roo> quit
哇!您现在拥有了一个完整的 webapp,包含 JUnit 测试、Selenium 测试、一个 MVC 前端和一个 Google Web Toolkit 前端。只需使用“mvn gwt:run”来玩转 GWT 客户端,或使用“mvn tomcat:run”启动 Tomcat MVC 前端并在 http://localhost:8080/foo/timers 查看。
接下来,您可能想输入“mvn eclipse:eclipse”,然后使用 Eclipse 的“General > Import Existing Project into Workspace”功能。让 Roo shell 保持运行,并随意在 Eclipse 中编辑。您会看到 Roo 在运行时会维护您的文件。如果您在 Roo 未运行时更改了任何内容,不用担心——只需启动 Roo,它就会同步您所做的任何更改。
如果您安装了 SpringSource Tool Suite (STS),只需使用 File > New > Roo Project。然后输入“项目名称”为“Foo”,“包名”为“com.foo”。点击“下一步”和“完成”后,您将在 STS 底部看到 Roo shell 加载。然后输入与“第一个项目 (独立 Roo)”部分相同的命令,您就可以轻松通过 WTP 运行应用了。
我们提供了一份详细的参考指南来帮助您入门。以下章节可能会有所帮助:
我们让学习 Roo 变得容易。有许多资源可以帮助您自由学习 Roo 或获得一些帮助。
在继续之前,我们建议您阅读入门页面并按照那里的第一个步骤操作。在这里,您将学习如何安装 Roo 并创建您的第一个项目。还有链接到参考指南的重要章节,以帮助您入门。
Roo 下载包中包含超过 100 页的 Roo 参考文档,以帮助您。该指南主要有四个部分:欢迎来到 Roo、基本附加组件、内部原理和附加组件开发,以及附录。完成入门页面后,这是最好的入门资源。
访问社区页面,了解与更广泛的 Roo 社区联系的多种方式。这不仅是了解 Roo 的好方法,而且也非常有趣和友好。
通过项目链接页面可以找到大量关于 Spring Roo 的视频和可下载的演示文稿。如果您想做关于 Roo 的演示,也请随时联系 Spring Roo 项目工程师,我们将很乐意提供最新的幻灯片和路线图信息,以进一步协助您。
Manning 出版了《Roo In Action》一书。访问 http://www.manning.com/rimple 或关注 @RooInAction 获取最新更新。
Packt Publishing 出版了 Ashish Sarin 撰写的《Spring Roo 1.1 Cookbook》。
O'Reilly 出版了《Getting Started with Roo》。您也可以下载该书的开源版本。这本书更多是一份简洁的介绍,而非参考文本。
SpringSource (VMware 的一个部门) 提供全面、现场和公开的培训课程,涵盖 Spring 平台,包括 Roo。如果您正在寻找关于 Roo 的详细定制课程,SpringSource 也可以协助您。
SpringSource 还提供短期专业服务。常见的服务包括设计评审、架构建议和指导服务。
SpringSource 提供全面的开发者和生产支持订阅。其中包括针对关键任务环境的 SLA 支持的 24x7x365 选项。
Roo 社区由数千名正在使用 Roo 的人组成,从初级 Java 开发人员到 JavaOne 明星人物——以及介于两者之间的所有人!Roo 社区包容、友好,并热烈欢迎您的参与。我们不仅会帮助您学习 Roo,也很乐意提供使用技巧、路线图信息和架构建议。参与 Roo 社区的方式在本页面有详细说明。我们期待您的加入!
关注 @SpringRoo 获取最新的官方新闻和发布公告。如果您对 Roo 的开发进展和其他有趣的更新感兴趣,我们也鼓励您关注 Roo 项目团队工程师。
如果您发表关于 Roo 的推文,请在消息中包含 #SpringRoo(请勿使用 #roo 或类似标签)。这将有助于其他人找到您的推文,并且会被本页面和我们主页上的 Twitter 小工具发现。请通过这种简单快捷的方式让我们(以及其他人!)知道您对 Roo 的看法。
Roo 社区论坛是与社区其他成员沟通关于 Roo 入门、使用建议、架构帮助、路线图信息和潜在 bug 的主要方式。您也会发现这是联系 Roo 核心项目工程师的便捷途径,他们都在社区论坛上很活跃,并乐意与您讨论路线图和 Roo 的详细内部原理。
如果您喜欢 Roo,就告诉其他人吧!最简单的方法是直接在 Twitter 上 @SpringRoo,但其他方式也可以包括公司内部演示、用户组讲座、会议演讲等。Roo 非常适合演示,因为它对演示非常友好,此外我们还有大量免费提供并定期更新的演示材料供您使用(只需在社区论坛上联系我们)。如果您已经做过关于 Roo 的演示,请告诉我们,我们会尝试送您一份 Roo 小礼物(通常我们有一些不错的礼品,这要感谢 SpringSource)。
我们将很快推出“应用展示”页面,向其他人展示使用 Roo 开发的应用。如果您使用 Roo 构建了应用,并希望提供截图和一两句简短介绍,请通过论坛与我们联系。
如果您发现了 bug 或有功能想法,请在我们的问题跟踪器中记录。我们的问题跟踪器也可以用来查找其他人提交的功能、对需求进行评论以及为您认为最有用的功能投票。这是我们确定改进请求优先级的一种常见方式。
核心 Roo 工程师定期在 SpringSource 团队博客上发表关于 Roo 的文章。您也可以通过关注 Roo 分类直接访问与 Roo 相关的文章。
如果您想深入研究 Roo 代码,第一步是克隆我们的 Git 仓库并按照根目录中的 readme.txt 进行操作。我们使用 Maven 构建 Roo,因此构建您自己的发行版本非常容易(因为您可能已经安装了 Maven 来使用 Roo!)。您需要的 Git 命令是:
git clone git://github.com/SpringSource/spring-roo.git
为 Roo 编写代码的一个简单方法是开发附加组件。由于 Roo 使用基于 OSGi 的附加组件架构,您可以轻松构建可以被其他人找到并安装到他们的 Roo shell 中的附加组件。
如果您想为 Roo 本身贡献代码(而不是编写外部附加组件),也非常欢迎。查看问题跟踪器或在社区论坛上发布消息,概述您感兴趣的工作内容,我们将很乐意提供帮助。