Spring 2.0 RC1 釋出

釋出 | Juergen Hoeller | 2006 年 6 月 21 日 | ...

尊敬的 Spring 社群:

我們很高興地宣佈 Spring 2.0 RC1 已釋出。  下載 | 文件 | 更新日誌

這是 Spring 2.0 在過去六個月的五次里程碑釋出後的第一個釋出候選版本。這個穩定的版本正在等待廣泛的使用者反饋,以便在七月初發布 2.0 正式版。

Spring 2.0 的主要新主題包括

  1. 簡化配置 - 您會發現總體上為您的應用程式編寫的配置程式碼大大減少。您編寫的程式碼是高階且領域特定的,得益於智慧預設值以及豐富的驗證和工具支援。

  2. 強大的 AOP 統一 - 您可以簡潔地使用 AspectJ 在物件之前、之後和周圍應用切面來織入自定義行為,同時仍然受益於 Spring AOP 執行時的簡潔性。

  3. JSR 220 Java 持久化架構 (JPA) - 為您提供持久化提供者實現的選擇。Spring 是第一個在 JEE 和 JSE 環境中都支援 JPA 並實現兩者之間完全可移植性的框架。

  4. 非同步 JMS 訊息 - 訊息驅動的 POJO 為 JSE 環境帶來了輕量級非同步元件,並提供了 JMS 提供者的選擇。

  5. JSR-168 Portlets - Spring Portlet MVC 提供了一個用於開發 JSR 168 Portlets 的框架,其中包括與 Spring Web Flow 整合以協呼叫戶互動。

重要的是要強調 Spring 2.0 與 Spring 1.x 系列保持向後相容。相容性對於我們的使用者群體至關重要,我們致力於提供它。

這些領域的進一步主要新功能包括...

配置簡化
  • 基於 XML Schema 的 Bean 定義,帶有開箱即用的 XML 名稱空間,用於簡化常見的配置任務
  • 支援應用程式上下文中的擴充套件 Bean 作用域,主要目標是 Web 請求和會話作用域
  • Bean 定義增強:Bean 類的延遲載入、集合合併和智慧錯誤訊息
AOP
  • 基於 XML Schema 名稱空間的簡化 AOP 配置
  • 支援 AspectJ 切入點表示式語言和 @AspectJ 風格的切面
  • 支援對任何物件(包括細粒度領域物件)進行依賴注入(基於 AspectJ)
持久化與 JPA
  • 增強的 JDBC 支援:命名的 SQL 引數、基於泛型的 SimpleJdbcTemplate
  • 明確支援 Hibernate 3.1 和 3.2(同時保持與 Hibernate 3.0 相容)
  • 支援 Java 持久化 API (JPA),包括帶類 instrumenting 的完整容器契約
排程和訊息
  • 用於提交非同步工作的 TaskExecutor 抽象
  • 支援各種執行緒池,例如 Java 5 ThreadPoolExecutor 和 CommonJ WorkManager
  • 支援基於訊息監聽容器的非同步 JMS(“訊息驅動 POJO”)
Web 應用程式開發
  • 基於約定的 Web MVC:控制器對映、模型屬性名稱
  • 用於 Spring Web MVC 和 Spring Web Flow 的 JSP 表單標籤庫
  • 完全支援 Portlet 環境,包括基於 DispatcherPortlet 的 Portlet 風格 MVC

... 以及許多許多細節上的改進。

要檢視這些功能中的許多實際應用,請檢視發行版中 samples/jpetstore 目錄下的 JPetstore 參考應用程式。有關更多詳細資訊,請參閱參考文件的2.0 中有什麼新內容? 部分。

我們將在未來幾天內與 Maven2 社群合作,將 2.0 RC1 上傳到 Maven 倉庫。

感謝 Spring 社群為本次釋出提供了所有反饋。我們期待您為大型 2.0 GA 釋出提供反饋!

祝好,

Juergen Hoeller
Spring 2.0 產品開發負責人

Spring Web Services 1.0 M1 釋出

釋出 | Arjen Poutsma | 2006 年 6 月 12 日 | ...

尊敬的 Spring 社群:

我很高興地宣佈 Spring Web Services 1.0 M1 已釋出。下載 | 文件 | 更新日誌

本次釋出是 Spring-WS 的第一個里程碑版本:一個專注於建立文件驅動的 Web 服務的 Spring 社群產品。

Spring-WS 1.0 M1 包括

  • 一個基於 Apache Axiom 的流式 SOAP 訊息模型,
  • 與 Acegi 整合的 WS-Security 支援,
  • JAXB 2.0 marshaller 支援,
  • 自 0.9.1 以來發現的許多進一步的改進和問題修復。

詳見更新日誌

有關 Spring-WS 及其目標的更多資訊,請參閱Spring-WS 主頁

Spring Web Flow 1.0 RC2 釋出

釋出 | Keith Donald | 2006 年 6 月 10 日 | ...


 

尊敬的 Spring 社群:

我們很高興地宣佈 Spring Web Flow (SWF) 1.0 RC2 (釋出候選版本 2) 已釋出。  下載 | 文件 | 更新日誌

此版本包含錯誤修復和次要改進。   1.0 RC2 的新功能和值得注意的特性包括...

新功能和值得注意的特性

支援以可配置的方式將新啟動的流程執行的輸入從其呼叫環境中傳遞。 預設情況下,所有請求引數都作為輸入暴露。然後,流程可以選擇使用其輸入對映器將此輸入對映到其本地作用域。此對映器定義了流程的輸入契約,無論流程是作為頂層流程還是子流程啟動,此契約都是一致的。

考慮以下請求 URL 作為示例

https://:8080/flights/search-flow?flightNumber=12345

預設情況下,訪問此 URL 時,後端的 FlowExecutor 會將 "flightNumber" 請求引數放入一個“輸入對映”中。然後將該輸入對映傳遞給“search-flow”的新執行。

在 search-flow 定義中

<flow start-state="executeSearch">
    <input-mapper>
        <mapping source="flightNumber" target="flowScope.flightNumber"/>
    </input-mapper>

    ...
</flow>
上面的 <input-mapper> 定義了流程的輸入契約,宣告此流程支援 "flightNumber" 輸入屬性。啟動時提供 flightNumber 時,它將被對映到 "flowScope" 下,名稱為 "flightNumber"。對映器還能夠在此對映操作期間執行型別轉換。

要自定義流程執行輸入對映的填充,例如,從請求路徑或其他外部源拉取屬性,請配置 "FlowExecutorImpl.inputMapper" 屬性。

在 JSR168 Portlet 環境中支援流程執行和外部重定向。結合基於 Continuation 的儲存庫,這允許在 Portlet 環境中使用瀏覽器導航按鈕(後退、重新整理)。此外,在 Portlet 環境中,我們現在暴露了一個 "globalSessionMap" 屬性,用於訪問 Portlet Session APPLICATION_SCOPE 中的屬性。

一個新的儲存庫工廠,名為 "SingleKeyFlowExecutionRepositoryFactory"。 此實現為每個持久化流程執行生成一個唯一的識別符號。它對於實現 1.0 EA 的“對話重定向”語義非常有用——即每次 POST 後都會發生 REDIRECT-GET,並命中一個嵌入常量流程執行鍵的穩定“流程執行 URL”。請參閱 NumberGuess 示例進行說明。

引入了一個獨立的“對話”子系統,提供的流程執行儲存庫實現將此子系統委託用於標記管理流程執行狀態的邏輯對話。此對話子系統與 Spring Web Flow 的其餘部分完全解耦,可在 SWF 之外使用,並可能隨著時間的推移演變為獨立的模組。核心服務介面包括

public interface ConversationService {
    public Conversation beginConversation(ConversationParameters parameters);
    public Conversation getConversation(ConversationId id);
    public ConversationId parseConversationId(String encodedId);
}


public interface Conversation {
    public ConversationId getId();
    public void lock();
    public void end();
    public Object getAttribute(String name);
    public void setAttribute(String name, Object value);
    public void removeAttribute(String name);
    public void unlock();
}
當啟動新的流程執行並需要在一個請求之外持久化時,儲存庫呼叫 "beginConversation" 以啟動新的邏輯
對話,並將屬性放在對話作用域中以跟蹤執行狀態。同樣,當流程執行結束時,管理的對話也結束,並清除任何分配的狀態。

未來,我們期望在此係統中提供強大的功能,包括透過 JMX 進行對話監控和管理,以及對話歷史和統計資料。我們還期望證明其適用於 Spring Web Flow 之外的其他環境。特別感謝 Juergen Hoeller 和 Ben Hale 在設計此可移植對話服務抽象方面的幫助。


可能影響使用者的更改

在通往 1.0 正式版的道路上,1.0 RC2 有一些可能影響使用者的更改。以下部分對此進行說明

在 spring-webflow-dtd 中,我們將 '<action/>' 元素的 'resultName' 和 'resultScope' 屬性重新命名為 'result-name' 和 'result-scope',以便與其他屬性和元素名稱保持一致。

為簡化起見,刪除了 FormAction 的屬性 "bindOnSetupForm" 和 "validateOnBinding"。 經驗表明這些屬性很少使用,並且一直是新使用者的困惑來源。作為一個更好的替代方案,要在進入檢視狀態之前執行資料繫結操作,只需從您的流程定義中呼叫 "bind" 動作方法即可。要計算是否應該對 bindAndValidate 嘗試進行驗證,請覆蓋單個 "validationEnabled(RequestContext)" 鉤子。

刪除了 FormAction 的 "exposeFormObject" 動作方法。只需使用更推薦的 "setupForm"。

FlowExecutionRepository 和 FlowExecutor SPI 介面已被簡化。 現在更多邏輯被封裝在 FlowExecutionRepository 後面,包括生成的 FlowExecutionKeys 的結構和格式。此外,FlowExecutionRepository 現在嚴格負責管理持久化流程執行,不再負責其他。不再將“對話”這一額外概念納入 SWF 核心。這意味著幾件事

  • 整體儲存庫介面更簡單,使得建立帶有自定義 FlowExecutionKeys 的自定義 FlowExecutionRepositories 更容易。
  • SWF 核心詞彙更強:流程執行器呼叫流程執行器來執行流程。在一個請求後仍然處於活動狀態的執行器會持久化到儲存庫中。
  • 預設儲存庫實現選擇將管理由執行系統驅動的對話狀態的任務委託給獨立的“對話子系統”,但對該系統的依賴是完全封裝且可選的。

FlowExecutor 介面是 SWF 的入口點,對呼叫者也進行了簡化。它現在封裝了複雜內部型別(如 EventIds 和 FlowExecutionKeys)的知識,因此總體上更容易使用。
與此類似,刪除了對顯式 "conversationRedirect" 的支援。這意味著刪除了 "conversationRedirect:"

'view' 字首和 "CONVERSATION" RedirectType。要使用 1.0 RC2 實現相同的邏輯重定向語義,只需配置一個 redirectOnPause 型別為 FLOW_EXECUTION 的 FlowExecutor,以及一個型別為
SingleKeyFlowExecutionRepositoryFactory 的 repositoryFactory。
SingleKeyFlowExecutionRepositoryFactory。
--

Spring Web Flow 1.0 RC2 進一步完善了參考手冊,提供了 50 頁的 SWF 用法說明。該手冊可以線上獲取 HTML 和 PDF 格式。

開始使用 Spring Web Flow 的最佳方法之一是回顧和逐步學習示例應用程式。我們建議從一開始就回顧所有示例,並根據需要補充參考手冊材料。1.0 RC2 版本附帶了十個示例應用程式,每個應用程式演示了一組不同的產品功能。這些示例是

1. Phonebook - 演示大多數功能(包括子流程)的原始示例
2. Sellitem - 演示帶條件轉換的嚮導、流程執行重定向、對話作用域和 continuations
3. Flowlauncher - 演示啟動和恢復流程的所有可能方式
4. Itemlist - 演示 REST 風格 URL 和內聯流程
5. Shippingrate - 演示 Spring Web Flow 與 Ajax
技術結合使用(感謝 Steven Devijver)
6. NumberGuess - 演示有狀態 Bean 和“單一鍵”流程
執行重定向。
7. Birthdate - 演示 Struts 整合
8. Fileupload - 演示 multipart 檔案上傳
9. Phonebook-Portlet - Portlet 環境下的 phonebook 示例
(注意流程定義沒有改變)
10. Sellitem-JSF - JSF 環境下的 sellitem 示例

要一步構建示例應用程式以進行部署,只需解壓釋出存檔,訪問 projects/spring-webflow/build-spring-webflow 目錄並執行“ant dist”目標即可。有關釋出存檔內容和示例的更多資訊,請分別參見釋出 readme.txt 和 projects/spring-webflow/spring-webflow-samples/readme.txt。
參考 projects/spring-webflow/spring-webflow-samples/readme.txt 分別瞭解更多關於釋出存檔內容和示例的資訊。
所有示例專案都是 Spring IDE 專案,可以直接匯入 Eclipse。

感謝所有支援本次釋出的人。目前,我們預計 SWF 的下一個釋出版本將是 1.0 正式版,目標在六月下旬。如果需要,仍有可能再發佈一個 1.0 釋出候選版本。務必關注 SWF 主頁和
論壇以獲取更新。
訪問論壇以獲取更新。

祝您使用愉快!

Spring Web Flow 團隊

Spring Web Flow 1.0

釋出 | Keith Donald | 2006 年 6 月 10 日 | ...

 

產品負責人
Keith Donald,SpringSource
Erwin Vervaet,Ervacon
 
Spring Web Flow 是下一代 Java Web 應用程式控制器框架,允許開發人員將使用者操作建模為可在任何環境中執行的高階模組,稱為流程。該框架提高了生產力和可測試性,同時為強制執行導航規則和管理應用程式狀態提供了強大的解決方案。  

全景

Spring Web Flow 允許開發人員構建可重用、自包含的...

Spring IDE 1.3.1 釋出

釋出 | Torsten Juergeleit | 2006 年 6 月 8 日 | ...

尊敬的 Spring 社群:

我們很高興地宣佈 Spring IDE 1.3.1 已釋出。

此版本的 Spring IDE 提供了許多錯誤修復。完整列表請訪問 http://springide.org/project/milestone/Release%201.3.1

更改

  • 現在只有在需要使用 BeansXmlEditor 時才需要 Web Tools
  • 修復了影像快取中的資源洩漏問題
  • 更新至 Spring 1.2.8

更多詳細資訊可從專案網站獲取 http://springide.org/

使用 Eclipse 的更新管理器從專案的更新站點 安裝此版本 http://springide.org/updatesite/

有關錯誤報告,請提交工單到...

Acegi Security 1.0.0 釋出

釋出 | Ben Alex | 2006 年 5 月 30 日 | ...

經過兩年半多的開發,我很高興地宣佈 Acegi Security 1.0.0 現已正式釋出。

下載 | 文件 | 更新日誌 

除了自 1.0.0 RC2 以來的 80 多項改進和修復之外,此新版本還包含多項更改以幫助新使用者。這包括參考指南的重大重組和擴充套件(現在已超過 90 頁),以及一個新的“極簡”教程示例應用程式。

此外,還解決了新使用者經常遇到的許多問題,例如

  • 自定義 403 訊息(而不是使用 Servlet 容器的錯誤處理程式)
  • 檢測 XML 檔案重新格式化後損壞的屬性輸入
  • 一個新的登出過濾器。

我們還重構了 LDAP 服務,使 SecurityContextHolder 成為一個可插拔策略(特別適用於希望避免 ThreadLocal 的富客戶端),並改進了 CAS 支援。

請訪問此處檢視詳細更新日誌。與往常一樣,詳細的升級說明包含在釋出 ZIP 檔案中。

專案網站 http://acegisecurity.org 提供了 Acegi Security 功能的附加資訊、線上文件訪問以及最新版本下載連結。下個月我將在 SpringOne 上就 Acegi Security 發表演講,希望屆時能見到您。

Spring 2.0 JPA 入門指南

工程 | Mark Fisher | 2006 年 5 月 30 日 | ...

這篇部落格文章的目的是提供一個簡單的分步指南,幫助您在 獨立 環境中使用 Spring Framework 入門 JPA。雖然 JPA 規範最初是作為 EJB 3.0 的持久化機制,但幸運的是,人們認識到任何此類機制實際上都應該能夠持久化簡單的 POJO。因此,只需在 classpath 中包含幾個 JAR 並配置一些 Spring Bean,您就可以在您喜歡的 IDE 中開始試驗 JPA 程式碼。我將使用 Glassfish JPA——它是參考實現,基於 Oracle 的…

2006 年亞特蘭大 DevCon

工程 | Ben Hale | 2006 年 5 月 26 日 | ...

我剛剛結束了在 2006 年亞特蘭大 DevCon 的《Spring 2.0:新功能與值得注意之處》的演講。首先我要說,這次大會非常棒。會場和組織者都是一流的。我要特別感謝 Burr Sutter 舉辦了這麼一場精彩的大會。當會議中心沒有無線網路,但你可以使用隔壁咖啡館的網路時,你就知道事情進展順利。這是好兆頭!JUG 成員都非常博學(即使是那些不瞭解 Spring 的人),並提出了很棒的問題。我回答了關於 EJB 的問題…

Spring Framework 1.2.8 釋出

釋出 | Juergen Hoeller | 2006 年 5 月 8 日 | ...

尊敬的 Spring 社群:

我們很高興地宣佈 Spring 1.2.8 已釋出。下載 | 文件 | 更新日誌

這是一個維護版本,修復了之前 1.2.x 版本中發現的許多問題。大多數這些修復已從 2.0 M4 回移植,因此在那裡已經可用。詳細資訊請參閱更新日誌

Juergen
-----
Juergen Hoeller
Spring Framework 開發負責人
Interface21 首席架構師
http://www.springframework.org
http://www.interface21.com

Spring Web Flow 1.0 RC1 釋出

釋出 | Keith Donald | 2006 年 5 月 3 日 | ...

Spring Web Flow Logo

尊敬的 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 正式版之前還會有一個釋出候選版本。  1.0 RC1 中的新功能和值得注意的特性包括...

新功能和值得注意的特性

改進了對有狀態業務元件的管理支援。 Spring Web Flow 現在採用多種技術來管理有狀態中間層元件的例項,這些元件作為任務執行的一部分執行業務邏輯。在大多數情況下,狀態管理是完全透明的。您只需將應用程式狀態儲存在例項變數中,Spring Web Flow 就會以執行緒安全的方式在對話中處理該狀態的作用域。

這種支援由簡單的 NumberGuess 示例應用程式演示,其中由流程管理的 "Game" 元件負責執行遊戲業務邏輯。該元件本身對 Spring Web Flow API 沒有零依賴。

 為了演示,Game 元件的業務介面可以定義為

Game interface

執行 Game 與使用者的互動流程定義可能看起來像: 

 Game flow

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

 Game beans

HigherLowerGame 實現也完全與 Spring 和 Spring Web Flow API 解耦。

增強的流程變數支援,在流程啟動時自動建立。 流程變數的值甚至可以從後端的 Bean 工廠獲取,從而受益於完整的依賴注入。變數的確切作用域是可配置的。

一種新的流程執行重定向響應型別,用於重定向到唯一的“流程執行 URL”。訪問流程執行 URL 可以重新整理先前進入 ViewState 的流程,允許從那裡繼續。該 URL 在對話處於活動狀態且 continuation 點仍然有效時保持有效。這允許充分使用後退、前進、重新整理和新視窗按鈕,而無需頁面快取。

狀態異常處理的改進,方便支援執行轉換的狀態異常處理程式。核心轉換元素現在支援 on-exception 屬性,該屬性在發生異常時驅動轉換到新狀態。例如

過渡執行狀態異常處理 

... 如果 placeOrder 方法丟擲 AccountException,則將流程轉換到 editAccount 狀態。

流程屬性對映支援的改進。 現在每個流程都可以配置一個 input-mapper,用於對映呼叫者啟動流程時提供的輸入。流程還可以配置一個 output-mapper,用於向終止流程的呼叫者暴露返回值。這些增強功能使得流程可以作為頂層流程和子流程重用而無需更改,因為輸入和輸出屬性對於這兩種情況都一致對映。

支援動態檢視名稱和目標狀態表達式,允許方便地基於執行時計算 ViewState 的邏輯檢視名稱和轉換的目標狀態。

增強的 JSF 整合。JSF 整合現在支援邏輯重定向響應型別,包括 FlowExecutionRedirect、ConversationRedirect、FlowRedirect 和 ExternalRedirect。此外,對 FlowPhaseListener 的增強功能允許啟動和重新整理流程執行,而無需經過正式的導航步驟。預計 1.0 RC2 將增加更多 JSF 便利功能,並在 Portlet 環境中正式支援 JSF。

附加資源和入門方法

Spring Web Flow 1.0 RC1 進一步完善了參考手冊,提供了 50 頁關於 SWF 用法的重點內容。該手冊提供線上 HTMLPDF 格式。

開始使用 Spring Web Flow 的最佳方法之一是回顧和逐步學習示例應用程式。我們建議從一開始就回顧所有示例,並根據需要補充參考手冊材料。1.0 RC1 版本附帶了九 (9) 個示例應用程式,每個應用程式演示了產品的一組不同功能。這些示例是

1. Phonebook - 演示大多數功能(包括子流程)的原始示例。
2. Sellitem - 演示帶條件轉換、流程執行重定向、對話作用域和 continuations 的嚮導。
3. Flowlauncher - 演示啟動和恢復流程的所有可能方式。
4. Itemlist - 演示 REST 風格 URL、到可重新整理對話 URL 的對話重定向以及內聯流程。
5. Shippingrate - 演示 Spring Web Flow 與 Ajax 技術結合使用(感謝 Steven Devijver)
5. NumberGuess - 演示有狀態 Bean
6. Birthdate - 演示 Struts 整合。
7. Fileupload - 演示 multipart 檔案上傳。
8. Phonebook-Portlet - Portlet 環境下的 phonebook 示例(注意流程定義沒有改變)
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

訂閱 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

先行一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲取支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,一份簡單的訂閱即可獲得。

瞭解更多

近期活動

檢視 Spring 社群的所有近期活動。

檢視全部