下一代 Spring Web Flow 的第一個里程碑版本釋出

釋出 | Keith Donald | 2007 年 8 月 28 日 | ...

親愛的 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 版本的目標

如今,大多數應用程式開發人員透過將 Web Flow 整合到他們的“基礎”Web 框架(如 Spring MVC)中,使用 Spring Web Flow 實現線性頁面流程(例如嚮導)。 此類頁面流程表現出線性導航規則,是有狀態的,並形成動態、自包含的 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 的流程管理的持久化上下文的支援。 版本中包含的新的酒店預訂示例應用程式展示了這一功能。 以下是它在預訂示例中的工作原理

  • 當一個新的酒店預訂流程開始時,會自動為您建立一個持久化上下文。
  • 當您在流程中進展時,持久化上下文會自動用於所有資料訪問操作。  您不必擔心定位流程繫結的 EntityManager 例項,或以任何方式管理它。
  • 當您授權預訂時,對託管持久化實體的所有更改都會自動提交併重新整理回資料庫。 如果您選擇取消預訂,您的任何更改都不會被提交。

以下是此酒店預訂流程的圖形化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 中的初步工作引入了與流行 Javascript GUI 小部件框架 Ext 的整合。 提供了幾個輕量級的 JSF UI 元件,它們封裝了富 Ext 小部件的渲染。 我們採取的方法允許 Ext 小部件裝飾標準的 JSF 元件,從而新增桌面式的外觀和額外的 UI 行為,例如客戶端驗證。 2.0 M1 中提供了以下 Ext 元件裝飾器

  • 一個日期驗證器元件,對日期文字欄位執行豐富的客戶端驗證,並提供漂亮的日期選擇器控制元件。
  • 一個文字驗證器,對自由格式文字輸入欄位執行豐富的客戶端驗證。
  • 一個數字驗證器,對數字文字欄位執行豐富的客戶端驗證。

以下是日期驗證器控制元件的螢幕截圖,該控制元件也用於酒店預訂示例應用程式中

 

Ext 控制元件看起來很棒,並且由於所有 UI 行為都在客戶端執行,UI 的響應速度也非常出色。 作為 Spring Faces 模組的一部分,我們將在未來的 Web Flow 里程碑版本中增加對這方面的進一步支援。

擁有一個專門的 Spring Faces 模組也簡化了在 JSF 環境中設定 Spring Web Flow 的過程。 在 2.0 M1 之前,開發人員需要手動修改faces-config.xml來設定模板式的 Spring/SWF 整合管道。 透過 2.0 m1,只需在 classpath 中包含 spring-faces-2.0-m1.jar 即可自動完成此設定。

統一表達式語言 (EL) 支援

此版本中的新功能還包括對統一 EL 的完全支援,它提供了 Spring Web Flow 當前預設使用的基於 OGNL 的表示式解析器的替代方案。 現在建議在 JSF 環境中使用統一 EL,並在未來的里程碑版本中成為 JSF 開發人員的預設選項。

以下是酒店預訂流程定義中使用的 EL 表示式示例: 

 

上面的“id”表示式評估儲存在 Flow Scope 中的當前酒店識別符號。 請注意,這裡無需任何顯式的 flowScope 字首。 開發人員只需按名稱引用變數,ELExpressionEvaluator 將透過搜尋各種 scope 來解析變數。 這使得 Web Flow 定義中的 managed-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 發展成為一個完整的控制器框架,預計某些 SWF SPI 在未來的 Web Flow 2.x 里程碑版本中會發生變化。

Spring Web Flow 2.0 的未來里程碑版本將引入新的方言,用於在真正的程式語言中定義流程,提供比當前基於 XML 的流程定義語法更強大的替代方案。 一種基於 POJO 的 Java 流程定義語法正在開發中,同時也在開發一種基於 Groovy 的方法。 此外,還將引入用於實現 REST-ful 和 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 應用程式控制器框架使用。

Spring Web Services 1.0 釋出

釋出 | Arjen Poutsma | 2007 年 8 月 17 日 | ...

經過兩年的開發,我們很高興地宣佈 Spring Web Services 1.0 現已釋出。

Spring-WS Logo

下載 | 參考文件 | API 文件

Spring Web Services 是 Spring 社群專注於建立文件驅動、契約優先 Web 服務的產物。Spring Web Services 的關鍵特性包括...

  • 讓最佳實踐變得簡單:Spring Web Services 使強制執行最佳實踐變得更容易。這包括諸如 WS-I 基本配置檔案、契約優先開發以及契約與實現之間的鬆散耦合等實踐。
  • 強大的對映:您可以根據訊息負載、SOAP Action 頭部或 XPath 表示式將傳入的 XML 請求路由到任何處理程式。
  • XML API 支援:傳入的 XML 訊息可以在標準 JAXP API(如 DOM、SAX 和 StAX)中處理,也可以在 JDOM、dom4j、XOM 甚至封送處理技術中處理。
  • 靈活的 XML 封送處理:Spring Web Services 分發版中的物件/XML 對映模組支援 JAXB 1 和 2、Castor、XMLBeans、JiBX 和 XStream。 由於它是一個獨立的模組,您也可以在其他環境中使用它。
  • 重用您的 Spring 專業知識:Spring-WS 使用 Spring 應用程式上下文進行所有配置,這使您能夠快速啟動和執行。此外,Spring-WS 的架構類似於 Spring-MVC。
  • 支援 WS-Security:WS-Security 允許您對 SOAP 訊息進行簽名、加密和解密,或對其進行身份驗證。它還集成了 Spring Security

瞭解更多關於 Spring Web Services 的資訊,請參加 2007 年 12 月 12 日至 15 日在佛羅里達州好萊塢威斯汀外交官酒店舉行的The Spring Experience大會。Arjen 將在那裡發表兩場關於 Spring Web Services 的演講:介紹 Spring Web Services使用 Web Services 進行 WS-DuckTyping

有關自 1.0-RC2 以來的修復列表,請參閱釋出說明

最後,非常感謝所有參與者。沒有你們,這一切是不可能的!

阿姆斯特丹 Java Meetup 2007 年第三季度,9 月 21 日

工程 | Alef Arendsen | 2007 年 8 月 2 日 | ...

又到了下一次 Java Meetup 的時間了。我決定將這個季度活動在阿姆斯特丹的第七次會議推遲到夏末,因為荷蘭的大多數人會在八月左右休幾周假。

我查看了我們的內部日程,似乎 9 月 21 日是 9 月份唯一剩下的日子,所以我希望它也適合其他人的日程。

我們將在與去年四月會議相同的地點舉行,這對我們來說非常方便,並且大家似乎都覺得沒問題。有史以來第一次 Java Meetup 是在我最喜歡的阿姆斯特丹聚會場所舉行的…

Spring Framework 2.1 M3 釋出

釋出 | Juergen Hoeller | 2007 年 8 月 1 日 | ...

親愛的 Spring 社群:

我很高興地宣佈 Spring 2.1 M3 已釋出!

這是 Spring 2.1 系列中的第三個里程碑版本,引入了集合的自動裝配、"bean(name)" 切點元素、各種 JDBC 增強、JRuby 1.0 支援以及框架中的許多改進。

Spring 2.1 M1 Released

 

有關此版本中引入的新功能的更多詳細資訊,請參閱變更日誌JIRA 路線圖

供參考,我們還發布了 2.0.7 快照,其中包含從 2.1 M3 回遷的修復。請嘗試使用最新的快照作為 2.0.5/2.0.6 的直接替代!正式的 2.0.7 版本計劃於 8 月 15 日釋出。 

祝好, 

Juergen Hoeller
Spring Framework 開發主管
Interface21 - http://www.interface21.com

揭穿神話:代理影響效能

工程 | Alef Arendsen | 2007 年 7 月 19 日 | ...

在最近的一篇部落格文章中,Marc Logemann 觸及了代理效能的話題。在他的文章中,他請求一份由“Spring 團隊”撰寫的白皮書。我不想花大量篇幅討論代理和位元組碼織入機制之間的納秒級差異,但我認為有必要再次重申它們之間的差異以及這種討論是否重要。

什麼是代理?為什麼我們使用它們?

首先簡要回顧一下代理(通常以及在 Spring 中)的用途。根據 GoF(四人幫)的《設計模式》一書,代理是另一個物件的替代或佔位符,用於控制對其的訪問。由於代理位於物件的呼叫者和實際物件之間,它可以決定阻止呼叫實際(或目標)物件,或者在呼叫目標物件之前做一些事情。prox.jpg

換句話說,代理可以用作實際物件的替代品,以向這些物件應用額外行為——無論是與安全性相關的行為、快取還是效能測量…

Grails 和 Maven:一段不便的結合

工程 | Dave Syer | 2007 年 7 月 14 日 | ...

引言

Grails 似乎正在不斷發展壯大,而且正如他們所說,它看起來肯定“有前途”。我對在 Web 應用程式領域之外稍微擴充套件一下它的應用非常感興趣。如果您瞭解我在Spring Batch方面的工作,您可能就能猜到這會帶我去哪裡。但在這篇文章中,我只想分享一些我在 Grails 應用程式的基礎、低層部署和構建方面的經驗。

我對 Maven 2 又愛又恨,而且我正在學習喜愛 Grails,但遺憾的是,兩者並不十分相容。這將…

Setter 注入 vs 建構函式注入以及 @Required 的使用

工程 | Alef Arendsen | 2007 年 7 月 11 日 | ...

幾個月前,我們開始在 www.springframework.org 上釋出投票,請大家提供關於 Spring、其某些特性以及他們如何使用這些特性的反饋。我提出的第一個問題是人們是否檢查必需的依賴項,如果是,他們使用了什麼機制。我很快就接著這個問題問社群使用了什麼樣的事務管理策略。

令我高興的是,當我第一次檢視結果時,早在三月份,很多人透過在第一次投票中投票告訴我們他們正在使用 @Required 註解。第二次…

Java EE 6 做對了

工程 | Rod Johnson | 2007 年 7 月 3 日 | ...

Java EE 6 提案 (JSR 316) 於今天釋出。我相信這將是自該平臺近 10 年前釋出以來最重要的修訂版,並且應該受到技術使用者的歡迎。Interface21 很高興成為這個 JSR 的支持者,我期待著為其做出貢獻。

Java EE(在其大部分歷史中被稱為 J2EE)在建立 Java 中介軟體市場方面發揮了重要作用。然而,在這 10 年裡,該平臺出現了一些重要問題,例如

  • 符合 Java EE 標準的伺服器需要包含一系列對於絕大多數使用者來說幾乎沒有興趣的功能,導致其臃腫
  • 自設想 J2EE 以來,企業需求已經發生了變化,並且“一刀切模式”越來越不適用
  • 開源框架的出現極大地增強了企業 Java 的實力,這些框架使開發人員更具生產力,並使其生產應用程式更高效、更易維護
  • Ruby on Rails,甚至 .NET 等新挑戰表明,在快速變化和創新的時代,舒適的 2-3 年釋出週期會危及整個平臺

Java EE 6 是該平臺的一次重要修訂,它…

開源正在消亡嗎?證據不足

工程 | Rod Johnson | 2007 年 6 月 29 日 | ...

Michael Hickins 最近在 eWeek 上發表了一篇題為開源正在消亡嗎?的文章。標題吸引了我,也無疑吸引了很多人。但這篇文章並沒有證明這個論點,儘管其中包含了一些值得討論的有趣觀點。

文章的大部分內容涉及對政府使用開源的經驗以及 IBM 等供應商動機的猜測。我更喜歡根據公司和個人的行動來判斷他們,而不是猜測他們的動機,而且有大量證據表明,例如,IBM 非常重視開源。有很多…

Spring IDE 2.0 正式版釋出

釋出 | Christian Dupuis | 2007 年 6 月 27 日 | ...

在修復了大約 250 個 bug 並付出了無數小時努力新增對 Spring 2.0、Spring Web Flow、Spring AOP 和 Spring JavaConfig 的支援之後,我們自豪地宣佈 Spring IDE 2.0 現已釋出。

Spring IDE 2.0 Logo

下載 | 文件 | 變更日誌

該版本可從我們的釋出更新站點獲取。Spring IDE 2.0 根據 Eclipse Public License - v1.0 的條款獲得許可。

新功能

Spring IDE 2.0 包含許多新功能和大量的 bug 修復。所有已關閉的 ticket 列表可在我們的ticket 系統中找到。對於不熟悉 Spring IDE 最新開發的人,以下是包含的功能簡短列表

  • 支援Spring 2.0 基於名稱空間的配置。我們為此投入了大量工作,使其支援儘可能具有可擴充套件性。您可以在另一篇帖子中瞭解更多資訊。
  • 支援Spring Web Flow,包括對 WTP XML 編輯器的內容輔助和超連結擴充套件,以及驗證和圖形編輯。更多資訊可在此處獲取
  • Spring AOP 基於開發的工具。這包括支援驗證配置(解析切點表示式)以及基於 <aop:config> 和 @AspectJ 風格切面的橫切引用視覺化。
  • 支援Spring JavaConfig M2。這作為測試 Spring IDE 核心擴充套件點的沙箱。在此處此處閱讀更多資訊
  • 可用性和 UI 改進:新的Spring Explorer替換了Beans View,向 Eclipse 的 Project Explorer 貢獻內容,一種Spring Working Set 型別用於減少 Project 和 Spring Explorer 中的雜亂,針對 Java 包和類的重新命名和移動重構以及 Bean 名稱的重構參與者,新的專案和 Spring Bean 配置檔案嚮導。

Spring IDE 2.0 與即將釋出的 Eclipse 3.3 (又稱 Eclipse Europa) 相容。

Spring IDE 部落格閱讀更多資訊。

獲取 Spring 新聞通訊

訂閱 Spring 新聞通訊,保持聯絡

訂閱

領先一步

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

瞭解更多

獲取支援

Tanzu Spring 透過一個簡單的訂閱提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將舉行的活動

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

檢視全部