Spring Roo 1.1.1 有哪些新功能

工程 | Ben Alex | 2011 年 1 月 11 日 | ...

我們很高興地宣佈 Spring Roo 1.1.1 已正式釋出。此新版本包含 超過 250 項修復和增強,包括許多效能和功能改進。

和往常一樣,SpringSource Tool Suite (STS) 2.5.2 將很快釋出,並將整合此新版本的 Spring Roo。您也可以下載 Spring Roo 1.1.1 的獨立版本並立即開始使用。

讓我們簡要介紹一下我們在 Roo 1.1.1 中新增的一些更值得關注的增強功能。如果您正在升級基於 Roo 的專案,我們建議您查閱特定版本的升級說明,這些說明包含在參考指南中。參考指南也包含在下載 ZIP 檔案中,有 HTML 和 PDF 格式。

效能、佔用空間和可用性

Roo 團隊一直致力於提升 Roo 的效能、佔用空間和可用性。

已經實現了一些顯著的效能改進,在許多常見情況下,Roo 現在執行速度是以前的兩倍。例如,執行“roo script clinic.roo”來建立 Petclinic 示例,以前在 Roo 1.1.0 中需要 25 秒,而在同一臺機器上使用 Roo 1.1.1 只需 11 秒。我們還繼續對 Roo 內部進行效能分析和增強,以便在 1.1.2 中提供更好的效能分析和結果。

可用性透過多種方式得到了增強。我們顯著擴充套件文件,特別是關於資料庫逆向工程和 JDBC 驅動程式安裝的部分。Roo 1.1.1 還包含了一些新的 shell 功能,使 Roo 更易於使用。這些功能包括:如果向 Roo 命令提供了未知選項,則報告錯誤;命令選項解析不區分大小寫;命令執行期間的更好訊息提示;以及更具資訊量的提示

我們還稍微減小了 Roo 的佔用空間。Roo 1.1.0 發行版 ZIP 檔案為 7.2 Mb,而 Roo 1.1.1 現在是 6.8 Mb,儘管增加了新功能。雖然下載大小減少不顯著,但令人高興的是 Roo 並沒有隨每個版本增大,而是朝著相反的方向發展。

持久化功能

大多數使用 Roo 的人都在構建企業級 Java 應用。持久化是這類應用的關鍵需求,因此我們在 Roo 1.1.1 中繼續增強了持久化功能。

Roo 1.1.1 中對雲持久化的支援得到了極大改善。特別是,這個新版本增強了對 VMforce 的支援,包括升級到Data Nucleus 2.1.3。我們還改進了 Google App Engine (GAE) DataStore 的支援。Roo 現在透過其型別間宣告 (ITDs) 提供特殊的 GAE 關係處理。這意味著您現在可以呼叫 GAE 相關物件的訪問器和修改器方法,Roo 將在內部管理識別符號持久化和物件檢索語義。

Roo 1.1.0 中引入的增量資料庫逆向工程 (DBRE) 功能非常受歡迎,收到了大量社群反饋和新增強功能的請求。此功能的質量持續提升,增加了對使用者指定要包含或排除的表的支援、對 DBRE 管理實體的自動整合測試,以及對 DBRE 表之間多重關係的支援。

Roo 1.1.0 中人們經常問到的一個問題是,如果 Roo 沒有附帶 JDBC 驅動程式,如何內省資料庫。這導致我們釋出了一個臨時指令碼,人們可以使用它來安裝常用驅動程式,但這種方法對於所有可用的 JDBC 資料庫驅動程式來說並不實用。因此,在 Roo 1.1.1 中,我們透過 Roo 廣泛的外掛機制添加了對任何 JDBC 資料庫驅動程式的自動發現和安裝的支援。當您首次在 Roo 1.1.1 中嘗試 DBRE 操作時,如果未安裝 JDBC 驅動程式,您將看到一個搜尋結果,顯示適合的外掛並指示用於安裝它的命令。最棒的是,現在社群中的任何人都可以為不受支援的資料庫製作新的 JDBC 外掛,並將其提供給所有 Roo 使用者。我們甚至添加了一個新的外掛建立模板,專門用於將 JDBC 驅動程式封裝成適合 Roo 外掛發現的形式。您可以在參考指南的章節中閱讀更多關於此新功能的資訊。

標準(非雲、非 DBRE)基於 JPA 的 Roo 應用程式也有一些新的持久化功能可用。這些功能包括支援併發訪問多個數據庫,以及在實體上指定版本欄位

Web 層

我們內建的兩種 Web 技術在 Roo 1.1.1 中都有所改進。

自 Roo 1.1.0 以來,Google Web Toolkit (GWT) 支援得到了顯著增強。原始實現中許多問題的一個來源是如何修改 Roo 管理的程式碼。在 Roo 1.1.1 中,我們透過引入偽 ITD 模型全面解決了這個需求。很容易識別 Roo 管理的 GWT 原始檔,因為它們採用了與普通 Roo 應用程式類似的파일명約定(即 *_Roo_Gwt.java)。這意味著您對檔案所做的任何更改都將被 Roo 保留。我們還添加了對新 GWT 2.1.1 功能的支援,例如代理實體中的繼承。

使用 Roo 構建 Spring MVC 應用程式的使用者也將享受到 1.1.1 中的一些新功能。首先,對 JSON REST 控制器的支援更加全面。此外,還有一個新的集中式 ConversionService 來取代以前特定於控制器的轉換器,因此如果您正在開發基於 Roo 1.1.0 的 MVC 專案,您應該查閱前面提到的升級說明。增量資料庫逆向工程 (DBRE) 的相容性也得到了改進,特別是透過Web 層對複合主鍵的支援。我們還進行了內容型別調整,以便您可以更輕鬆地使用 Apache Tiles 以外的模板框架,並升級到Spring Security 3.0.5

外掛發現和安裝

Roo 1.1.0 中首次引入的外掛發現和安裝功能持續改進。您會發現現在有更好的外掛搜尋功能,包括內建關鍵字匹配、基於排名的排序、靈活的行格式化、版本相容性和可信開發者功能。基於 PGP 的去中心化安全基礎設施現在也更適合那些位於代理伺服器後的使用者,並且我們將新的外掛搜尋功能整合到了 shell 的未知命令解析器和 JDBC 驅動程式定位器中。所有這些意味著在 Roo 中定位和安裝新功能變得更簡單、更容易。

外掛模型的最大難題之一是人們如何識別哪些擴充套件值得使用。如果一個工具擁有數百個擴充套件,但其中許多不值得使用、已損壞或無人維護,那麼這些擴充套件就沒有意義。我們決定在 Roo 中解決這個問題,讓 Roo 自動收集關於人們正在使用哪些公共外掛的匿名資訊,並將這些聚合資訊納入外掛搜尋結果中。當然,這隻會在您同意 Roo 收集此資訊的情況下發生,並且收集的資訊絕不會用於識別您或您的專案。類似地,Roo 現在也允許社群對其正在使用的外掛提供可選反饋(例如評分和評論),這些反饋會包含在外掛搜尋結果中。這些功能提供了一種高效的方式來自動確定外掛受歡迎程度,而無需使用者麻煩地訪問網站進行投票和評論等。

Roo 1.1.1 還包括 Spring 使用者代理分析 (UAA) 支援。UAA 啟用了上述外掛排名資料收集功能,並幫助我們收集關於 Roo 使用情況的匿名資訊。這些資訊極大地幫助我們瞭解互操作性(因為我們知道人們在專案中一起使用了哪些常見的公共技術)並確定路線圖的優先順序。此功能預設停用,未經您的同意不會執行。如果您想了解更多關於 UAA 以及它如何保護您的隱私,請參閱UAA 常見問題

外掛開發

最後,Roo 1.1.1 提供了許多新功能和增強功能,幫助外掛開發者構建外掛。首先,我們透過“addon create”命令提供了更完整的示例。有一些新的實用類用於在 bundle 中查詢資源,以及顯示文字檔案和控制過濾器位置。執行緒名稱可以從控制檯輸出中隱藏,並增加了對內部型別和更復雜 Java 編譯單元建立的支援。開發模式也提供了許多新功能,例如深度日誌記錄、檔案系統操作的SHA1 程式碼,以及出現問題時取消自動撤銷(幫助您檢視生成的檔案)。元資料層有大量增強,包括透過 AbstractMemberDiscoveringItdMetadataProvider 提供的更好的元資料掃描模型、ITD MetadataProvider 更靈活的類級別下游解析,以及自動無限元資料迴圈檢測和重試功能。最後,我們增強了許多檔案系統內部功能,例如延遲檔案寫入,甚至延遲檔案刪除,這有助於在多次傳遞中建立複雜的 ITD 元資料。

所有這些增強功能使得編寫能夠滿足非常複雜的 ITD 和元資料要求,同時效能極佳且易於除錯的外掛變得更加容易。Roo 1.1.2 中也將帶來(並且已經在 Git 主分支中)顯著增強的元資料日誌記錄,如果您正在開發基於 ITD 的外掛,這可能會引起您的興趣。

結論

我們探討了 Spring Roo 1.1.1 中包含的 250 多項修復和增強功能中的一部分。無論您是使用 Roo 構建企業專案,還是為 Roo 社群構建外掛,我們都致力於在此新版本中顯著改善您的 Java 開發體驗。

不要忘記 STS 2.5.2 即將釋出,它將嵌入 Roo 1.1.1 和其他對開發基於 Roo 的應用有用的技術。您也可以立即下載 Roo 1.1.1 並開始使用。

如果您對這個新版本有任何疑問,請在Spring Roo 社群論壇提問。您還可以透過 Twitter 關注開發團隊成員以獲取最新的開發動態,並關注 @SpringRoo 以獲取未來的釋出公告。請在所有與 Roo 相關的推文中帶上 #springroo 標籤,以便其他人輕鬆看到。

希望您喜歡這個新版本。

獲取 Spring 簡報

訂閱 Spring 簡報,保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您快速提升。

瞭解更多

獲取支援

Tanzu Spring 透過一份簡單的訂閱提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將到來的活動

檢視 Spring 社群的所有即將到來的活動。

檢視全部