Spring Roo

发布 | Chloe Jackson | 2011年9月12日 | ...

即时结果 - 让 Java 充满乐趣

Spring Roo 是一个轻量级的开发工具,可以快速轻松地获得即时结果。最棒的是,您完全用 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购买。

令人兴奋的功能 - GWT. Solr. Cloud. Flex...

使用 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?

Spring Roo 是一款下一代快速应用程序开发工具,专为 Java 开发人员设计。使用 Roo,您可以在几分钟内轻松构建完整的 Java 应用程序。它与其他生产力工具的不同之处在于,它侧重于:

技术集成

 

Roo 提供对构建复杂企业应用程序所需的所有主流 Java 技术的轻松即时访问。以下是基于 Roo 的项目可以立即利用的一些技术(此外,还有许多由第三方插件支持,或者您可以编写自己的插件):

  • Adobe Flex
  • Apache ActiveMQ
  • Apache Maven
  • Apache OpenJPA
  • Apache Tiles
  • Apache Tomcat
  • AspectJ
  • AspectJ Development Tools
  • 云计算
  • Dojo Toolkit
  • Eclipse IDE
  • EclipseLink
  • Google Web Toolkit
  • Google App Engine
  • Hibernate
  • Java 5+
  • Java Bean Validation
  • Java Database Connectivity
  • Java Message Service
  • Java Persistence API
  • Java Transaction API
  • Java Server Pages
  • Jetty
  • JUnit
  • Log4J
  • Representational State Transfer (REST)
  • Selenium
  • OSGi 插件
  • Solr 搜索
  • SpringSource tc Server with Insight
  • SpringSource 工具套件
  • Spring Integration
  • Spring Framework
  • Spring Security
  • Spring Web Flow
  • URL Rewrite Filter
  • Web 应用程序资源 (WAR) 打包
  • 编写自己的插件

生产力不打折

Roo 的创新方法没有任何妥协

  • 用 Java 编程!
  • 完整的 IDE 支持(具备代码辅助、重构和调试等功能)
  • 没有运行时部分,这意味着在企业中更容易采用,并且符合审批要求
  • 出色的运行时性能,因为没有运行时内存占用、部署占地面积、控制流调用时间等
  • 项目受 bug 影响的风险更低,因为 Roo 完全在开发时运行(就像您的 IDE 一样)
  • 不会锁定 Roo,因为您可以在几分钟内将其从项目中移除
  • 易于扩展新功能,得益于基于 OSGi 的插件可扩展性
  • 我们还可以继续说下去,但您明白了: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 作为您的生产力工具的原因。



试用 Spring Roo

入门 Roo 非常简单。只需按照此页面上的步骤操作,您将在几分钟内拥有一个正在运行的环境。

下载

Roo 要求您下载并安装

要获取 Roo,您可以下载其独立的命令行 shell 版本,也可以使用内置于 SpringSource Tool Suite 的版本。如果您愿意,也可以同时下载两者并一起使用。

安装

如果您下载了独立的 Spring Roo,只需将其解压到您选择的位置。然后

  • Windows 用户:将 %ROO_HOME%\bin 添加到您的路径中
  • *nix 用户:创建一个符号链接到 $ROO_HOME/bin/roo.sh(例如,sudo ln -s ~/spring-roo-1.x.x/bin/roo.sh /usr/bin/roo)

 

观看视频

如果您想观看安装 Roo 后使用它的便捷性,此视频将向您展示如何操作。或者,完成下面的步骤并亲自尝试。

第一个项目 - Roo Standalone

让我们构建一个项目。下面的步骤中将省略控制台输出。我们还强烈建议您在每一步之后输入“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

太棒了!您现在拥有了一个 Web 应用程序,其中包含 JUnit 测试、Selenium 测试、MVC 前端、Google Web Toolkit 前端。只需使用“mvn gwt:run”来尝试 GWT 客户端,或使用“mvn tomcat:run”启动 Tomcat MVC 前端并访问 https://:8080/foo/timers。

接下来,您可能需要输入“mvn eclipse:eclipse”,然后使用 Eclipse 的“General > Import Existing Project into Workspace”功能。保持 Roo shell 运行,并随意在 Eclipse 中进行编辑。您会看到 Roo 在运行时维护您的文件。如果您在 Roo 未运行时更改了任何内容,请不用担心 - 只需启动 Roo,它就会跟进您所做的任何更改。

第一个项目 – 通过 STS

如果您安装了 SpringSource Tool Suite,只需使用 File > New > Roo Project。然后输入“Foo”作为“project name”,输入“com.foo”作为“package”。单击“Next”和“Finish”后,您会看到 Roo shell 加载到 STS 的底部。然后输入与我们在“第一个项目 (Roo standalone)”部分看到的相同的命令,您就可以通过 WTP 轻松运行应用程序。

下一步

我们有一个详细的参考指南来帮助您入门。以下部分可能会对您有所帮助:

  • 安装
  • 第一步
  • Roo 示例
  • 建议步骤
  • 详细教程



学习 Spring Roo

入门

我们已使学习 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 支持的 24 x 7 x 365 选项。



谈论 Spring Roo

Spring Roo 社区

Roo 社区由数千名使用 Roo 的人组成,从初级 Java 开发人员到 JavaOne 的明星,以及介于两者之间的一切!Roo 社区是包容的、友好的,并热烈欢迎您的参与。我们不仅会帮助您学习 Roo,还会乐于为您提供使用技巧、路线图信息和架构建议。有关参与 Roo 社区的方式已在此页面上详细介绍。我们期待您的反馈!

Twitter

关注@SpringRoo 以获取最新的官方新闻和发布公告。如果您对 Roo 的开发进展和其他有趣的更新感兴趣,我们也鼓励您关注Roo 项目团队工程师

如果您在 Twitter 上发布有关 Roo 的信息,请在消息中包含 #SpringRoo(请勿使用 #roo 或类似的标签)。这将有助于他人找到您的推文,并且本页面和我们主页上的 Twitter 小部件也能找到它。请以这种简单快捷的方式让我们(以及其他人!)知道您对 Roo 的看法。

社区论坛

Roo社区论坛是与其他社区成员沟通入门 Roo、使用建议、架构帮助、路线图信息和可能存在的 bug 的主要方式。您还会发现这是一种轻松接触 Roo 核心项目工程师的方式,他们都活跃在社区论坛上,并乐于与您讨论路线图和 Roo 的详细内部原理。

传播消息

如果您喜欢 Roo,请告诉其他人!最简单的方法就是用 @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 本身(而不是编写外部插件)做出贡献,我们也热烈欢迎。请查看问题跟踪器,或在社区论坛上发布一条消息,概述您有兴趣从事的工作,我们将乐意为您提供帮助。

 

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有