
親愛的 Spring 社群,
我們非常高興地宣佈 Spring Web Flow (SWF) 1.0 RC1(釋出候選版 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 最終版之前還會有一個釋出候選版。 1.0 RC1 的新特性和值得注意的變化包括...
新特性和值得注意的變化
改進了對有狀態業務元件的管理支援。 Spring Web Flow 現在採用了幾種技術來管理執行業務邏輯的有狀態中間層元件例項,作為任務執行的一部分。 在大多數情況下,狀態管理是
完全透明的。 您只需將應用程式狀態儲存在例項變數中,Spring Web Flow 會以執行緒安全的方式處理該狀態在會話中的作用域。
簡單的 NumberGuess 示例應用說明了此支援,其中由流管理的“Game”元件執行遊戲業務邏輯。 元件本身對 Spring Web Flow API 沒有依賴。
為了演示,Game 元件的業務介面可以定義為

與使用者一起執行遊戲的流定義可能如下所示:

最後,邏輯 game 動作識別符號與 Game 實現之間的繫結由 Spring 在 game-beans.xml 中完成。

HigherLowerGame 實現也與 Spring 和 Spring Web Flow API 完全解耦。
增強了對流變數的支援,流變數在流啟動時自動建立。 流變數的值甚至可以從支援 bean 工廠中獲取,從而受益於完整的依賴注入。 變數的精確作用域是可配置的。
一種新的流執行重定向響應型別,用於重定向到唯一的“流執行 URL”。 訪問流執行 URL 會重新整理先前進入 ViewState 的流,允許從那裡繼續執行。 在會話處於活動狀態且延續點仍然有效時,該 URL 保持有效。 這允許完全使用後退、前進、重新整理和新視窗按鈕,而無需頁面快取。
狀態異常處理的改進,提供方便的支援以執行狀態異常處理程式。 核心過渡元素現在支援 on-exception 屬性,當異常發生時,該屬性驅動一個過渡到新狀態。 例如
... 如果 placeOrder 方法丟擲 AccountException,則將流過渡到 editAccount 狀態。
改進了流屬性對映支援。 現在每個流都可以配置 input-mapper 來對映啟動流的呼叫者提供的輸入。 流還可以配置 output-mapper 將返回值暴露給終止流的呼叫者。 這些增強功能允許流在不更改的情況下作為頂層流和子流重複使用,因為輸入和輸出屬性在這兩種情況下都得到一致的對映。
支援動態檢視名稱和目標狀態表達式,從而方便地在執行時計算 ViewState 的邏輯檢視名稱和過渡的目標狀態。
增強了 JSF 整合。 JSF 整合現在支援邏輯重定向響應型別,包括 FlowExecutionRedirect、ConversationRedirect、FlowRedirect 和 ExternalRedirect。 此外,對 FlowPhaseListener 的增強允許啟動和重新整理流執行,而無需經過正式的導航步驟。 預計 1.0 RC2 將在 Portlet 環境中為 JSF 新增更多便利性和官方支援。
附加資源和入門指南
Spring Web Flow 1.0 RC1 進一步完善了參考手冊,提供了 50 頁關於 SWF 用法的重點內容。 該手冊可在 HTML 和 PDF 格式線上獲取。
開始使用 Spring Web Flow 的最佳方法之一是檢視和演練示例應用程式。 我們建議從一開始就檢視所有示例,並根據需要補充參考手冊材料。 1.0 RC1 版本附帶了九 (9) 個示例應用程式,每個都演示了產品的一組不同功能。 這些示例包括:
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 目標。 有關發行版存檔內容和示例的更多資訊,請分別參閱 release readme.txt 和 projects/spring-webflow-samples/readme.txt。 所有示例專案現在都是 Spring IDE 專案,可以直接匯入 Eclipse。 敬請期待 Spring IDE 團隊即將推出的 Spring IDE 圖形化 Web 流編輯器。
感謝所有使用 Spring Web Flow 並提供反饋使其更強大的人們,感謝大家讓 Spring Web Flow 成就今日的輝煌。 祝大家使用愉快!
誠摯地,
Spring Web Flow 團隊
Keith Donald
Erwin Vervaet
Colin Sampaleanu
Juergen Hoeller
Rob Harrop