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的專案,我們鼓勵您查閱參考指南中包含的特定版本的升級說明。參考指南也以HTML和PDF格式包含在下載的ZIP檔案中。

效能、佔用空間和可用性

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現在透過其內部型別宣告(ITD)提供特殊的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層

Roo 1.1.1中,我們內建的兩種Web技術都得到了改進。

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

附加元件開發

最後,Roo 1.1.1提供了許多新功能和增強功能,以幫助附加元件開發者構建附加元件。首先,我們透過“addon create”命令提供了更完整的示例。有一些新的實用類用於在捆綁包中查詢資源,以及顯示文字檔案和控制過濾器定位。執行緒名可以從控制檯輸出中抑制,並且對內部型別和更復雜的Java編譯單元建立有額外的支援。開發模式還提供了許多新功能,例如深入日誌記錄,檔案系統操作的SHA1程式碼,以及在出錯時取消自動撤銷(以幫助您檢視結果檔案)。元資料層有許多增強,包括透過AbstractMemberDiscoveringItdMetadataProvider實現更好的元資料掃描模型,為ITD MetadataProviders提供更靈活的類級別下游解析,以及自動無限元資料迴圈檢測和重試功能。最後,我們增強了許多檔案系統內部機制,例如延遲檔案寫入,甚至延遲檔案刪除,這有助於在多次透過中建立複雜的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 社群所有即將舉行的活動。

檢視所有