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 社群所有即將舉行的活動。

檢視所有