
親愛的 Spring 社群,
我們很高興地宣布 Spring Web Flow (SWF) 1.0 RC1 (Release Candidate 1) 已經發佈。 下載它。
經過一年多的辛勤開發工作,29,000 次下載,500 個論壇使用者的 3,700 篇帖子,一本書和眾多 社群-驅動的 文章,此版本提供了 Spring Web Flow 的第一個 1.0 發佈候選版本。 此版本被認為適合生產環境使用,它鞏固了 1.0 API,該 API 在整個 1.x 系列中將保持向後相容。
對於支持我們產品的 Spring Web Flow 早期採用者和擁護者,謝謝您。 感謝您的回饋和支持,Spring Web Flow 提供了當今可用的最具創新性和功能強大的控制器引擎之一。
Spring Web Flow 團隊預計在 1.0 final 之前再發佈一個候選版本。 1.0 RC1 中的新功能和值得注意的功能包括…
新功能和值得注意的功能
改進了對管理具狀態業務元件的支援。 Spring Web Flow 現在採用多種技術來管理執行業務邏輯作為任務執行一部分的具狀態中間層元件的實例。 在大多數情況下,狀態管理是
完全透明的。 您只需將應用程式狀態儲存在實例變數中,Spring Web Flow 即可在對話中以執行緒安全的方式處理該狀態的範圍。
簡單的 NumberGuess 範例應用程式說明了此支援,其中由流程管理的 "Game" 元件執行遊戲業務邏輯。 元件本身對 Spring Web Flow API 沒有任何依賴性。
為了演示,Game 元件的業務介面可以定義為

執行具有使用者的 Game 的流程定義可能如下所示:

最後,邏輯 game 動作識別碼與 Game 實作之間的綁定由 Spring 在 game-beans.xml 中進行。

HigherLowerGame 實作也與 Spring 和 Spring Web Flow API 完全分離。
增強了對流程變數的支援,這些變數在流程啟動時自動建立。 流程變數值甚至可以從後端 bean 工廠取得,從而受益於完全的依賴性注入。 變數的確切範圍是可配置的。
一種新的流程執行重新導向回應類型,用於重新導向到唯一的 "流程執行 URL"。 存取流程執行 URL 會在先前輸入的 ViewState 中刷新 Flow,允許從那裡繼續。 該 URL 在對話處於活動狀態且繼續點仍然有效時保持有效。 這允許充分利用後退、前進、刷新和新視窗按鈕,而無需頁面快取。
細化了狀態例外處理,並方便地支援轉換執行狀態例外處理常式。 核心轉換元素現在支援 on-exception 屬性,該屬性在發生例外時驅動轉換到新狀態。 例如
… 如果 placeOrder 方法拋出 AccountException,則將流程轉換為 editAccount 狀態。
改進了流程屬性對應支援。 現在可以使用輸入對應器配置每個流程,以對應啟動流程的呼叫者提供的輸入。 也可以使用輸出對應器配置流程,以向終止流程的呼叫者公開傳回值。 這些增強功能允許流程重用為頂層流程和子流程,而無需更改,因為輸入和輸出屬性在兩種情況下都一致地對應。
支援動態檢視名稱和目標狀態表達式,允許方便地基於執行階段計算 ViewState 的邏輯檢視名稱和轉換的目標狀態。
增強了 JSF 整合。 JSF 整合現在支援邏輯重新導向回應類型,包括 FlowExecutionRedirect、ConversationRedirect、FlowRedirect 和 ExternalRedirect。 此外,FlowPhaseListener 的增強功能允許啟動和刷新流程執行,而無需經過正式的導航步驟。 1.0 RC2 預計將增加更多的 JSF 便利性和對 Portlet 環境中 JSF 的官方支援。
其他資源和從哪裡開始
Spring Web Flow 1.0 RC1 進一步細化了參考手冊,提供了 50 頁關於 SWF 使用的重點內容。 該手冊可在線上以 HTML 和 PDF 格式提供。
開始使用 Spring Web Flow 的最佳方法之一是檢閱並演練範例應用程式。 我們建議檢閱所有範例,並從一開始就根據需要補充參考手冊材料。 九 (9) 個範例應用程式隨 1.0 RC1 版本一起提供,每個範例都演示了一組不同的產品功能。 這些範例是
1. Phonebook - 原始範例,演示了大多數功能(包括子流程)。
2. Sellitem - 演示了具有條件轉換、流程執行重新導向、對話範圍和繼續的精靈。
3. Flowlauncher - 演示了啟動和恢復流程的所有可能方式。
4. Itemlist - 演示了 REST 樣式的 URL、到可刷新對話 URL 的對話重新導向和內嵌流程。
5. Shippingrate - 演示了 Spring Web Flow 與 Ajax 技術的結合使用(感謝 Steven Devijver)
5. NumberGuess - 演示了具狀態的 bean
6. Birthdate - 演示了 Struts 整合。
7. Fileupload - 演示了多部分檔案上傳。
8. Phonebook-Portlet - Portlet 環境中的電話簿範例(注意流程定義沒有變化)
9. Sellitem-JSF - JSF 環境中的 sellitem 範例(注意流程定義沒有變化)
若要一步建構範例應用程式以進行部署,只需解壓縮發佈封存檔,存取 projects/build-spring-webflow 目錄,然後執行 ant dist 目標。 有關發佈封存檔內容和範例的更多資訊,請參閱發佈 readme.txt 和 projects/spring-webflow-samples/readme.txt。 所有範例專案現在都是 Spring IDE 專案,可以直接匯入到 Eclipse 中。 敬請期待 Spring IDE 團隊即將推出的 Spring IDE 圖形 Web Flow 編輯器。
感謝所有使 Spring Web Flow 成為今天的樣子的每個人 - 那些使用它的人,提供使其更強大的回饋。 享受吧!
此致,
Spring Web Flow 團隊
Keith Donald
Erwin Vervaet
Colin Sampaleanu
Juergen Hoeller
Rob Harrop