領先一步
VMware 提供培訓和認證來加速您的進度。
深入了解親愛的 Spring 社群:
我們很高興宣布 Spring Web Flow 新一代版本的首個里程碑現已發布。Spring Web Flow 2.0 M1 引入了幾個主要的新功能,包括對流程管理的持久化上下文的支持、改進了對 Java Server Faces 的支持、完整的統一表達式語言 (EL) 支持,以及更全面的 範例 Web 應用程式。
Spring Web Flow 2.0 是一個新一代框架,用於開發 Java Web 應用程式控制器。該框架提供了一個統一的執行時期環境,用於在各種環境中執行無狀態和有狀態的客戶端交互。
Web Flow 2.0 發布的目標
今天,大多數應用程式開發人員使用 Spring Web Flow 來實現線性頁面流程,例如嚮導,方法是將 Web Flow 插入到他們的“基本”Web 框架中,例如 Spring MVC。這些頁面流程展示了線性的導航規則,是有狀態的,並且形成了動態的、自包含的 Web 應用程式功能模組。一個很好的例子是貸款申請流程:Web Flow 獨特的流程定義語言為實現這些類型的流程提供了一個自然的程式設計模型。
Spring Web Flow 2.0 的總體目標是正式地將該產品從目前主要用於實現線性嚮導的框架,轉變為其始終被設計成為的:一個通用的應用程式控制器引擎,用於驅動所有類型的客戶端交互。這些交互包括嚮導、無狀態的“RESTful”交互,以及在“Web 2.0”應用程式中經常出現的更細粒度的、非線性/非同步交互。
Spring Web Flow 2.0 將為 Spring 社群提供一個統一的應用程式控制器框架和執行時期環境,適用於執行所有類型的客戶端交互,並且能夠整合各種視圖渲染技術和 UI 元件模型。這種統一的執行時期環境將能夠一致地應用管理工具、安全性、AJAX 和受管理的持久化等獨特功能。
檢視完整的 Spring Web Flow 2.0 路線圖。
Web Flow 2.0 M1 新功能和值得注意的事項
第一個 2.0 發布里程碑在邁向 2.0 最終版本的道路上引入了幾個主要的新功能。這些功能如下所述。
使用 JPA 和 Hibernate 的流程管理持久化上下文
Spring Web Flow 2.0 M1 引入了對使用 Hibernate 和 JPA 的流程管理持久化上下文的支持。此版本中包含的新 飯店預訂範例應用程式演示了此功能。以下是在預訂範例中的工作方式
此飯店預訂流程的圖形化 Spring IDE 視圖如下所示
改進了對 Java Server Faces (JSF) 的支持
Spring Web Flow 2.0 M1 引入了 Spring Faces 模組 (spring-faces-2.0-m1.jar),這是隨 Web Flow 發布的元件,包含對使用 Java Server Faces 開發 Web 應用程式的組織的一流支持。現有的 Web Flow + JSF 整合已分解到此專案,並且此專案將成為未來所有 JSF 整合工作的所在地。
Spring Faces 模組為 Spring 社群提供了一個專用專案,用於探索額外的 JSF 整合機會。2.0 M1 中的初始工作引入了與 Ext 的整合,Ext 是一個流行的 Javascript GUI 小工具框架。提供了一些輕量級的 JSF UI 元件,這些元件封裝了豐富的 Ext 小工具的渲染。我們採用的方法允許 Ext 小工具裝飾標準的 JSF 元件,添加類似於桌面的外觀和額外的 UI 行為,例如客戶端驗證。以下 Ext 元件裝飾器在 2.0 M1 中提供
日期驗證器控制項的螢幕截圖(也在飯店預訂範例應用程式中使用)如下所示
Ext 控制項外觀精美,並且由於所有 UI 行為都在客戶端執行,因此 UI 的響應速度非常出色。作為 Spring Faces 模組的一部分,我們將在未來的 Web Flow 發布里程碑中在此領域添加更多支持。
擁有專用的 Spring Faces 模組還可以簡化在 JSF 環境中設定 Spring Web Flow 的過程。在 2.0 M1 之前,開發人員需要手動修改 faces-config.xml 來設定樣板 Spring/SWF 整合管道。使用 2.0 m1,只需在類別路徑中包含 spring-faces-2.0-m1.jar 即可自動完成此設定。
統一表達式語言 (EL) 支持
此版本中的另一個新功能是對統一 EL 的完整支持,它提供了一種替代方案,可以替代 Spring Web Flow 中目前預設使用的基於 OGNL 的表達式分析器。現在建議在 JSF 環境中使用統一 EL,並且在未來的里程碑中,它將成為 JSF 開發人員的預設設置。
飯店預訂流程定義中使用的 EL 表達式範例如下所示:
上面的“id”表達式評估儲存在流程範圍中的當前飯店識別碼。請注意,此處不需要任何明確的 flowScope 前綴。開發人員只需按其名稱引用變數,ELExpressionEvaluator 即可通過搜尋各種範圍來處理解析變數。這使得 Web Flow 定義中的受管理 bean 引用與用於模型綁定表達式的 JSF 視圖中的引用 100% 一致。例如,請參閱 bookingForm.xhtml 視圖中的以下程式碼片段
2.0 發行說明
Spring Web Flow 2.0 需要 Spring 2.0 或更高版本以及 Java 1.4 或更高版本。
Spring Web Flow 2.0 將儘可能保持與 1.0.x 基於 XML 的流程定義語言的向後兼容性。預計在未來的 Web Flow 2.x 里程碑中,某些 SWF SPI 將會發生變更,因為 Web Flow 會發展成為一個完整的控制器框架。
Spring Web Flow 2.0 的未來里程碑將引入用於以真實程式設計語言定義流程的新方言,從而提供比當前基於 XML 的流程定義語法更強大的替代方案。基於 POJO 的 Java 流程定義語法正在開發中,基於 Groovy 的方法也是如此。此外,還將引入用於實現 RESTful 和 CRUD 流程的高階流程方言。由於 Web Flow 定義 API 和執行時期環境與任何具體的流程定義語法是分開的,因此我們可以自然地引入以不同方式在執行時期設計應用程式控制器的新語法。
對於 JSF 使用者,Spring Web Flow 2.0 和 Spring Faces 在 JSF 1.1 和 JSF 1.2 上執行。Spring Faces 模組中的 UI 元件庫獨立於 Web Flow 執行時期環境,也可以與 JSF 的預設導航處理程序一起使用。
Spring Web Flow 2.0 將繼續提供對 Servlet 2.4 或更高版本、Portlet 1.0 或更高版本以及 JUnit 3.8.1 或更高版本環境的完整支持。
Spring Web Flow 2.0 將繼續在 Struts 1.2 或更高版本和 Spring MVC 2.0 或更高版本環境中執行,並且在 2.0 最終版本中也可以用作獨立的 Web 應用程式控制器框架。