Spring Web Flow 1.0 RC4 釋出

釋出 | Keith Donald | 2006 年 10 月 05 日 | ...
親愛的Spring社群,
 
我們很高興地宣佈 Spring Web Flow 1.0 RC4 已釋出。
 

 

Spring Web Flow 是 Spring 社群的一個產品,專注於協調 Web 應用程式中的使用者介面流程。

此版本包含許多改進和幾個令人興奮的新功能。我們認為它是迄今為止最穩定的版本,並且最終,此版本使 Spring Web Flow 1.0 最終路線圖功能完善。Spring Web Flow 1.0 最終版將於下週釋出,改動極小。在此期間,我們鼓勵您測試 1.0 RC4,以幫助在 1.0 正式釋出前發現任何剩餘問題。

請注意,此版本中存在影響使用者的更改。1.0 RC3 或更早版本的使用者應查閱 升級指南,其中詳細概述了這些更改。

1.0 RC4 中的新增和值得注意的特性列表令人興奮,包括:

新增和值得注意

作為 Spring Web Flow 1.0 最終版之前的最後一個釋出候選版,Spring Web Flow 1.0 RC4 引入了強大的新功能,例如渲染動作 (1)、評估動作 (2)、設定動作 (3)、快閃記憶體範圍 (4)、流程執行屬性 (5) 和始終在暫停時重定向 (6)。它提供了增強的文件、更好的流程定義驗證、智慧預設值以及用於配置流程執行引擎的完整自定義 Spring 2.0 配置模式 (7)。

  • (1) 渲染動作在響應渲染之前執行應用程式行為。當檢視狀態被要求進行可渲染檢視選擇時,渲染動作會被呼叫,無論是在進入時還是在由重定向或瀏覽器重新整理按鈕觸發的重新整理時。以下示例顯示了一個渲染動作,它在呈現結果檢視之前執行電話簿搜尋。

    <view-state id="displayResults" view="searchResults">
        <render-actions>
            <bean-action bean="phonebook" method="search">
                <method-arguments>
                    <argument expression="flowScope.searchCriteria"/>          
                </method-arguments>
                <method-result name="results"/>
            </bean-action>
        </render-actions>
        <transition on="newSearch" to="enterCriteria"/>
        <transition on="select" to="browseDetails"/>
    </view-state>

  • (2) 評估動作根據流程執行狀態評估表示式。表示式(預設基於 OGNL)可以針對流程執行的根 RequestContext 可訪問的任何物件,包括任何範圍(例如流程範圍)中的物件。以下示例顯示了一個評估動作,它呼叫“game”流程範圍 bean 上的“makeGuess”方法
    <action-state id="makeGuess">
        <evaluate-action expression="flowScope.game.makeGuess(requestParameters.guess)">
            <evaluation-result name="guessResult"/>
        </evaluate-action>
        <transition on="CORRECT" to="showAnswer"/>
        <transition on="*" to="enterGuess"/>
        <transition on-exception="java.lang.NumberFormatException" to="enterGuess"/>
    </action-state>
  • (3) 設定動作設定範圍型別(如流程範圍)中的屬性值。屬性可以是頂級屬性,也可以是巢狀屬性路徑中的屬性。以下示例顯示了一個設定動作,它將快閃記憶體範圍中的“fileUploaded”屬性設定為“true”。
    <action-state id="uploadFile">
        <action bean="uploadAction" method="uploadFile"/>
        <transition on="success" to="selectFile">
            <set attribute="fileUploaded" scope="flash" value="true"/>
        </transition>
    </action-state>
  • (4) 快閃記憶體範圍是一種新的範圍型別,用於在重定向和檢視的任何重新整理之間持久化屬性。當事件被訊號通知從檢視中轉換時,快閃記憶體範圍將被清除。以下完整的流程定義示例顯示了使用快閃記憶體範圍將“fileUploaded”屬性公開給 selectFile 檢視狀態,以便在成功上傳後顯示成功訊息。
    <flow xmlns="http://www.springframework.org/schema/webflow"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.springframework.org/schema/webflow
                                           http://www.springframework.org/schema/webflow/spring-webflow-1.0.xsd">
   
        <start-state idref="selectFile"/>
       
        <view-state id="selectFile" view="fileForm">
            <transition on="submit" to="uploadFile"/>
        </view-state>
   
        <action-state id="uploadFile">
            <action bean="uploadAction" method="uploadFile"/>
            <transition on="success" to="selectFile">
                <set attribute="fileUploaded" scope="flash" value="true"/>
            </transition>
        </action-state>
       
    </flow>
  • (5) 流程執行屬性允許您設定自定義屬性,這些屬性可以影響流程執行行為。以下示例顯示了在 Portlet 環境中將“alwaysRedirectOnPause”屬性設定為 false 的指令(其中重定向通常不適用)。
    <flow:executor id="flowExecutor" registry-ref="flowRegistry">
        <flow:execution-attributes>
            <flow:alwaysRedirectOnPause value="false"/>
        </flow:execution-attributes>
    </flow:executor>
  • (6) “始終在暫停時重定向”為您提供預設的 POST+REDIRECT+GET 行為,無需特殊編碼。現在,預設情況下,當進入檢視狀態時,會自動發出重定向。這會觸發對流程執行 URL 的重新整理,該 URL 在會話處於活動狀態時保持穩定。
  • (7) 新的 Spring 2.0 配置方言極大地簡化了系統配置並提供了強大的驗證和工具支援。配置 webflow 的基礎設施現在只需定義兩個元素,如下完整所示
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:flow="http://www.springframework.org/schema/webflow-config"
           xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/webflow-config
               http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd">
   
        <!-- Launches new flow executions and resumes existing executions. -->   
        <flow:executor id="flowExecutor" registry-ref="flowRegistry"/>
       
        <!-- Creates the registry of flow definitions for this application -->
        <flow:registry id="flowRegistry">
            <flow:location path="/WEB-INF/flows/**-flow.xml"/>
        </flow:registry>
       
    </beans>

有關這些功能的更多資訊,請參閱參考手冊。Spring Web Flow 1.0 RC4 進一步完善了參考文件,提供了 70 頁關於 SWF 用法的內容。手冊可線上獲取 HTMLPDF 格式。

入門

開始使用 Spring Web Flow 的最佳方法之一是檢視和演練示例應用程式。我們建議檢視所有示例,並根據需要從一開始就補充參考手冊材料。此版本附帶了十個示例應用程式,每個應用程式都演示了一組獨特的產品功能。這些示例是

  1. 電話簿 - 演示大多數功能(包括子流程)的原始示例
  2. 售賣商品 - 演示帶有條件轉換、流程執行重定向、自定義文字欄位格式和續期的嚮導
  3. 流程啟動器 - 演示啟動和恢復流程的所有可能方式
  4. 專案列表 - 演示 REST 風格的 URL 和內聯流程
  5. 運費 - 演示 Spring Web Flow 與 Ajax 技術結合使用
  6. 猜數字 - 演示有狀態 bean、評估動作和“單一鍵”流程執行重定向。
  7. 生日 - 演示 Struts 整合
  8. 檔案上傳 - 演示多部分檔案上傳、設定動作和快閃記憶體範圍
  9. 電話簿-Portlet - Portlet 環境中的電話簿示例(請注意流程定義沒有改變)
  10. 售賣商品-JSF - JSF 環境中的售賣商品示例

要快速評估示例應用程式,只需

  1. 解壓 spring-webflow-1.0-rc4.zip 釋出歸檔檔案
  2. 訪問 projects/spring-webflow/build-spring-webflow 目錄
  3. 執行“ant dist”目標。
  4. 請參閱“target/artifacts”目錄,其中包含每個示例的可部署 .war 檔案以及已解壓的 war 目錄。
有關釋出歸檔內容和示例的更多資訊,請分別參閱 release readme.txt 和 projects/spring-webflow/spring-webflow-samples/readme.txt。

所有示例專案都是 Spring IDE 專案,可直接匯入 Eclipse。

感謝所有支援此版本的人。Spring Web Flow 1.0 終於...指日可待。

祝您使用愉快!

Spring Web Flow 團隊

Spring 2.0 最終版釋出

釋出 | Rod Johnson | 2006 年 10 月 3 日 | ...

我們很高興地宣佈,備受期待的 Spring Framework 2.0 最終版現已釋出。

Spring 2.0 Released

下載 | 文件 | 更新日誌 

作為領先的全棧 Java/Java EE 應用程式框架,Spring 為許多專案帶來了顯著的好處,減少了開發工作和成本,同時提高了測試覆蓋率和質量。

經過 9 個月的積極開發,這個穩定、生產級的版本終於釋出了。在如此短的時間內,Spring 2.x 系列已經取得了巨大的成熟,受益於 9 個里程碑版本的超過 150,000 次早期訪問下載,解決了超過 750 個 JIRA 問題,其中 50 個引入了主要的新功能。

有什麼新內容?

我們相信三個屬性概括了使用者對 Spring 2.0 系列的期望:簡單強大成熟


2.0 版對框架的整體使用模型帶來了重大簡化。正如我們現有使用者所知,Spring 的核心是 Bean 容器,它驅動您的 Java 和 Java EE 應用程式的配置。在 2.0 版中,透過引入自定義 Bean 配置方言,許多常見的配置任務得到了簡化。這對您意味著什麼?

這意味著您現在可以

  • 在一行配置程式碼中使您的業務服務具有事務性。
  • 在一行配置程式碼中從 JNDI 查詢物件。
  • 在一行配置程式碼中將外部化屬性公開給您的服務。
  • 使用單個註解將一致的異常處理策略應用於您的資料訪問物件。
  • 透過定義單個配置標籤呼叫無狀態遠端 EJB。不再需要自定義服務定位器或業務委託。
簡化繼續貫穿框架的模組,讓您能夠
  • 在一行程式碼中編寫引數化 JDBC 查詢。
  • 在部署 Spring MVC 控制器時應用約定優於配置
  • 在開發輸入表單時使用 Spring JSP 標籤減少輸入。


Spring 2.0 的一個主要目標是讓常見任務變得更容易。2.0 版本也為以優雅的方式解決更困難的問題開闢了令人興奮的新途徑。在 2.0 中,您可以

  • 使用 AspectJ 簡潔的切入點表示式語言,將自定義行為編織到程式執行的多個點。
  • 以事務和執行緒安全保證接收非同步 JMS 訊息。觀看演示
  • 為您的應用程式開發自己的Bean 配置方言
  • 以執行緒安全的方式從自定義範圍(如“請求”和“會話”範圍)注入物件。
  • 從您的 Java 應用程式呼叫 Groovy、Beanshell 和 JRuby 指令碼。
  • 使用複雜的執行緒和池選項非同步排程任務。

2.0 版建立在 Spring 1.x 奠定的基礎之上。這個新版本提供了主要的新功能,同時儘可能保持向後相容性。

自 2004 年 3 月釋出以來,Spring 1.x 已被下載超過一百萬次,使使用普通 Java 物件 (POJO) 開發複雜應用程式成為事實上的標準。2.x 系列在此廣泛認可的最佳實踐之上,提供了新的簡化和強大功能,同時完全相容已建立的 Spring 1.x 系列。使用者可以期望他們的升級是直接的;在大多數情況下,只需將 1.2.8 JAR 檔案替換為 Spring 2.0 中包含的 JAR 檔案。

請享受,並感謝您

Spring 2.0 代表了過去一年許多人的共同努力。從 Interface21 的主要開發人員 Juergen、Rob、Rick 和 Costin,到我們的支援合作伙伴 BEA 和 Oracle,再到社群中貢獻創新、補丁、文件、錯誤報告和測試的許多人——這裡麵包含了大量的汗水、努力和淚水。我們衷心希望您在使用這個新版本時感到像我們構建它時一樣快樂。享受它吧,並且請放心:工作不會止步於此。

此致,

Spring 團隊

 


其他資源

  • 參加 2006 年 Spring 體驗大會,這是 Spring 社群的頂級會議,將於 12 月 7 日至 10 日在佛羅里達州好萊塢舉行。在 10 月 16 日前註冊可為您的團隊獲得早鳥折扣。
  • 透過路線圖跟蹤未來的 Spring 2.x 開發
  • 請收藏此頁面,以獲取更多演示新 2.0 功能的截圖影片和程式碼示例。

Spring 2.0 候選釋出版 4 釋出

釋出 | Juergen Hoeller | 2006年9月17日 | ...

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

這是 Spring 2.0 最終版本之前的最後一個候選釋出版。  RC4 包含了許多進一步的錯誤修復和各個領域的改進,以及一些次要的新功能(例如在 JMS 支援中)。請參閱更新日誌和JIRA 問題列表,瞭解所有詳細資訊。  最值得注意的變化包括...

新增和值得注意

  • 此版本為 2.0 DTD 和 XSD 引入了帶版本的檔名。如果您的 Bean 定義檔案基於 2.0 XSD 或 2.0 特定的 DTD 功能,請調整它們。  例如:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <!-- 在此處定義您的 Bean -->

</beans>

  • 如您所料,Spring 1.2 DTD 在其已建立的 spring-beans DTD 檔名下仍然得到完全支援。
  • 2.0 XML 配置元素和屬性現在已針對我們支援的每個模式進行了完整文件記錄。  特別感謝 Rick Evans 在這方面的貢獻。
  • Apache OJB 支援 (org.springframework.orm.ojb) 從此版本起不再隨核心 Spring 發行版提供。它現在可從Spring Modules 專案獲取。
  • Spring 的 JPA 支援現已針對 Oracle TopLink Essentials v2 b16 以及 Hibernate EntityManager 3.2.0 CR2 進行了全面測試。我們廣泛的整合測試套件現在完全通過了這兩個 JPA 提供商的測試。我們目前正在以同樣的方式覆蓋 OpenJPA。

我們期待您對該版本的反饋。

祝好,

Juergen Hoeller
Spring 框架開發負責人

Spring LDAP 1.1 釋出

釋出 | Mattias Arthursson | 2006年8月28日 | ...

親愛的Spring社群,

我們很高興地宣佈 Spring LDAP 1.1 版本釋出。這是該庫作為 Spring Framework 子專案釋出的第一個版本。下載 | 文件 | API

關於 Spring LDAP
Spring LDAP 是一個 Java 庫,基於 Spring 的 JdbcTemplate 模式,用於簡化 LDAP 操作。該框架將使用者從查詢和關閉上下文、遍歷 NamingEnumerations、編碼/解碼值和過濾器等繁重工作中解放出來。

LdapTemplate 類封裝了傳統 LDAP 程式設計中涉及的所有底層工作,例如建立、遍歷 NamingEnumerations、處理異常和清理資源。這使得程式設計師能夠處理重要的事情——在哪裡查詢資料(DN 和過濾器)以及如何處理它(對映到領域物件和從領域物件對映、繫結、修改、解綁等),就像 JdbcTemplate 將程式設計師從實際的 SQL 和資料如何對映到領域模型之外的所有工作中解放出來一樣。

除此之外,Spring LDAP 還提供從 NamingExceptions 到 DataAccessExceptions 的異常轉換,以及用於處理過濾器、LDAP 路徑和屬性的多個實用工具。

Spring-LDAP 需要 J2SE 1.4。構建需要 J2SE 1.4。執行示例需要 J2EE 1.4(Servlet 2.3,JSP 1.2)。

從何開始
從上面的連結下載分發包。分發包包含詳盡的 JavaDoc 文件以及完整的參考文件和示例應用程式,說明了使用 Spring LDAP 的不同方式。

主頁
Spring LDAP 的永久主頁是 http://www.springframework.org/ldap

歷史
Spring LDAP 基於 SourceForge LdapTemplate 專案。建議 LdapTemplate 使用者切換到 Spring LDAP。

Mattias Arthursson & Ulrik Sandberg
Spring LDAP 專案團隊

Spring 2.0 釋出候選版本 3 釋出

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

親愛的 Spring 社群:

我們很高興地宣佈 Spring 2.0 RC3 已經發布。  下載 | 文件 | 更新日誌

這第三個釋出候選版本包含了許多基於我們收到的前一個釋出候選版本使用者寶貴反饋的改進。 隨著此版本的釋出,Spring 2.0 最終版本即將到來。

最重要的改進包括:

  • Spring 1.2 對 default-lazy-init="true" 的相容性已恢復,涉及透過型別檢測特殊 Bean(如 PropertyPlaceholderConfigurer)。同時,延遲類載入也已重新設計,允許在類名中使用佔位符等。對於特殊的 ApplicationContext,仍然可以強制執行嚴格的延遲類載入。
  • 現在 Hibernate3、JDO 和 TopLink 也支援基於 @Repository 註解的持久化異常轉換,而不僅僅是 JPA。 異常轉換現在儘可能基於底層 ORM 工具的本地異常,只有明確指定時才應用 Spring 特定的 SQLException 轉換。
  • 在我們的 JMS 支援中,DefaultMessageListenerContainer 具有最佳化的資源處理功能(在 JBoss 4.0 上也有效),並且能夠從損壞的 Connection 或 Destination 中恢復。JMS 資源的快取現在完全可配置,為 XA 和非 XA 場景都提供了合理的預設值。此外,JmsTemplate 在 JTA 事務中重用快取的 JMS 資源。
  • Servlet 和 Portlet Web MVC 現在支援通用的 WebRequestInterceptor 抽象,這允許 Open Session/EntityManager/等在 View 攔截器中跨 Servlet 和 Portlet 環境重用。因此,所有這些 Portlet 特定的攔截器都已棄用,轉而使用新的通用攔截器(OpenSessionInViewInterceptor 等)。

當然,細節上還有許多進一步的改進。請參閱更新日誌檔案(以及 JIRA 中的更新日誌)瞭解詳細資訊。

如果您在 RC3 中遇到任何剩餘問題,請告訴我們。 Spring 2.0 最終版本即將釋出。

Juergen Hoeller,
Spring Framework 開發負責人

Spring 2.0 RC2 釋出

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

親愛的 Spring 社群:

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

這是 Spring 2.0 最終版本之前的第二個釋出候選版本。它引入了多項錯誤修復和細微改進,特別是在 AOP 框架和 JPA 支援方面。請參閱更新日誌瞭解詳情。在即將釋出的 2.0 RC3 版本中,還將解決一些已知問題;詳情請參閱我們的 JIRA 路線圖。

請使用此版本嘗試您的應用程式,並告知我們您可能遇到的任何問題!需要強調的是,Spring 2.0 提供了與 Spring 1.x 系列的向後相容性。  Spring 2.0 還繼續支援 JDK 1.3+J2EE 1.3+(甚至 J2EE 1.2+,除了 JSP 標籤和 EJB 支援)。相容性對我們的使用者群至關重要,我們致力於提供它。因此,我們也對在任何此類平臺上可能出現的相容性問題感興趣。

感謝各位對本次釋出的所有反饋。  我們期待在 2.0 GA 釋出日期前收到更多反饋!

祝好,

Juergen Hoeller
Spring 2.0 產品開發負責人

Spring Web Flow 1.0 RC3 釋出

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

親愛的Spring社群,

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

這個穩定版本包含了錯誤修復和次要改進。   目前我們預計這將是 Spring Web Flow 1.0 最終版本釋出前的最後一個候選版本,最終版本即將釋出。  值得注意的改進包括...

值得注意的改進

改進了流程異常層次結構。  總體而言,異常層次結構現在更清晰地組織了從流程定義訪問(FlowLocatorException)到執行時流程執行(FlowExecutionException)和執行永續性(FlowExecutionRepositoryException)的故障類別。

 

改進了在 Portlet 環境中使用後退按鈕的支援。  結合基於延續的儲存庫,SWF 在 Portlet 環境中支援在流程處於活動狀態時完全使用瀏覽器導航按鈕(後退、重新整理)。  當流程執行終止時,瀏覽器重新整理將自動觸發新的執行啟動。

更簡單的預設 JSF 檢視對映。  現在,預設情況下,SWF 檢視名稱應與 JSF 檢視 ID 完全對應。您將在 sellitem-jsf 示例中看到此預設設定——請注意檢視是如何像標準 JSF 導航處理程式一樣被引用為 "/priceAndItemCountForm.jsp" 的。  這允許自然地支援其他 JSF 檢視技術,例如 Facelets,並且對於 JSF 開發人員來說是一個更自然的預設設定。  如果您需要自定義 SWF 到 JSF 檢視對映,請將自定義 ViewIdMapper 插入到您的 FlowPhaseListener 中。

示例應用程式簡化。  我們簡化了 fileupload、flowlauncher、birthdate 和 sellitem 示例,以利用 Spring Web Flow 的最新功能和最佳實踐。

潛在的使用者影響變更

在通往 1.0 最終版本的道路上,1.0 RC3 存在一些潛在的使用者影響變更。  以下部分將對此進行說明。

為了簡化,移除了 FormAction 屬性 "validateUsingValidatorMethod"。  經驗表明,此屬性是新使用者的困惑來源。  作為更好的替代方案,要在不進行驗證的情況下執行資料繫結操作,只需從您的流程定義中呼叫 "bind" 動作方法即可。  當您需要分步驗證時,只需呼叫 "bindAndValidate" 或 "validate",並將 "validatorMethod" 屬性設定為特定的驗證器方法即可。  請參閱 sellitem 示例。

StateExceptionHandler 已重新命名為 "FlowExecutionExceptionHandler"。 這會影響自定義處理程式實現。  要升級,只需實現新的介面;其簽名在邏輯上是相同的。

FlowExecutorImpl 的 "redirectOnPause" 屬性現在接受布林值而不是 RedirectType 列舉。  從 1.0 RC2 開始,SWF 中只有一種重定向型別——流程執行重定向。  將此標誌設定為“true”會在每次流程執行透過進入檢視狀態而暫停時觸發它。  請參閱 Numberguess 或 sellitem 示例。
--------

開始使用 Spring Web Flow 的最佳方法之一是檢視和演練示例應用程式。  我們建議從一開始就檢視所有示例,並根據需要補充參考手冊材料。1.0 RC3 版本附帶了十個示例應用程式,每個都展示了不同的產品功能集。  這些示例是:

1. 電話簿 - 展示大多數功能(包括子流程)的原始示例
2. 銷售商品 - 展示帶條件轉換、流程執行重定向、會話作用域和延續的嚮導
3. 流程啟動器 - 展示啟動和恢復流程的所有可能方式
4. 商品列表 - 展示 REST 風格 URL 和內聯流程
5. 運費 - 展示 Spring Web Flow 與 Ajax 技術結合(感謝 Steven Devijver)
6. 猜數字 - 展示有狀態 bean 和“單鍵”流程執行重定向。
7. 生日 - 展示 Struts 整合
8. 檔案上傳 - 展示多部分檔案上傳
9. 電話簿-Portlet - Portlet 環境中的電話簿示例
(請注意流程定義沒有變化)
10. 銷售商品-JSF - JSF 環境中的銷售商品示例

祝您使用愉快!

Spring Web Flow 團隊

Keith Donald
Erwin Vervaet
Juergen Hoeller
Colin Sampaleanu
Rob Harrop

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 Persistence Architecture (JPA) - 為您提供永續性提供者實現的選擇。  Spring 是第一個在 JEE 和 JSE 環境中都支援 JPA 的框架,並且兩者之間具有完全的可移植性。

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

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

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

這些領域的其他主要新功能包括...

配置簡化
  • 基於 XML schema 的 bean 定義,以及用於簡化常見配置任務的開箱即用的 XML 名稱空間
  • 支援應用程式上下文中的擴充套件 bean 作用域,主要目標是 Web 請求和會話作用域
  • Bean 定義增強:bean 類的延遲載入、集合合併和智慧錯誤訊息
AOP
  • 基於 XML 模式名稱空間的簡化 AOP 配置
  • 支援 AspectJ 切點表示式語言和 @AspectJ 風格的切面
  • 支援對任何物件進行依賴注入,包括細粒度領域物件(基於 AspectJ)
持久化和 JPA
  • 增強的 JDBC 支援:命名 SQL 引數,基於泛型的 SimpleJdbcTemplate
  • 明確支援 Hibernate 3.1 和 3.2(同時保持與 Hibernate 3.0 的相容性)
  • 支援 Java 持久化 API (JPA),包括完整的容器契約和類儀器
排程和訊息傳遞
  • 用於提交非同步工作的 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 的第一個里程碑版本:一個由 Spring 社群主導,專注於建立文件驅動的 Web 服務的專案。

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

一個新的儲存庫工廠名為 "SingleKeyFlowExecutionRepositoryFactory"。 該實現為每個持久化流執行生成一個唯一的識別符號。  它對於實現 1.0 EA "會話重定向" 語義很有用——即每次 POST 後,REDIRECT-GET 都會訪問一個穩定的 "流執行 URL",該 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)的知識,因此總體上更易於使用。
FlowExecutor 介面,作為 SWF 的入口點,也為呼叫者進行了簡化。  它現在封裝了複雜內部型別(例如 EventIds 和 FlowExecutionKeys)的知識,因此總體上更易於使用。

同樣,對顯式“會話重定向”的支援已被移除。  這表示移除了 "conversationRedirect:"
“view”字首和“CONVERSATION”RedirectType。  要在 1.0 RC2 中實現相同的邏輯重定向語義,只需將 FlowExecutor 配置為 redirectOnPause 型別 FLOW_EXECUTION 和 repositoryFactory 為
SingleKeyFlowExecutionRepositoryFactory。
--

Spring Web Flow 1.0 RC2 進一步完善了參考手冊,提供了 50 頁關於 SWF 使用的資料。  該手冊以 HTML 和 PDF 格式線上提供。

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

1. 電話簿 - 展示大多數功能(包括子流程)的原始示例
2. 銷售商品 - 展示帶條件轉換、流程執行重定向、會話作用域和延續的嚮導
3. 流程啟動器 - 展示啟動和恢復流程的所有可能方式
4. 商品列表 - 展示 REST 風格 URL 和內聯流程
5. 運費 - 演示 Spring Web Flow 與 Ajax 技術結合使用
(感謝 Steven Devijver)
6. 猜數字 - 演示有狀態 Bean 和“單鍵”流程
執行重定向。
7. 生日 - 展示 Struts 整合
8. 檔案上傳 - 展示多部分檔案上傳
9. 電話簿-Portlet - Portlet 環境中的電話簿示例
(請注意流程定義沒有變化)
10. 銷售商品-JSF - JSF 環境中的銷售商品示例

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

感謝所有支援本次釋出的人。  目前,我們預計 SWF 的下一個版本將是 1.0 最終版,目標釋出時間在六月底
。  如果有需要,仍有可能釋出另一個 1.0 版本候選。  請務必關注 SWF 主頁和
論壇以獲取更新。

祝您使用愉快!

Spring Web Flow 團隊

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有