在 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 的…

Atlanta DevCon 2006

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

我剛剛在 Atlanta DevCon 2006 上完成了我的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 final 之前再發佈一個候選版本。  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 中刷新 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 使用的重點內容。 該手冊可在線上以 HTMLPDF 格式提供。

開始使用 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

Spring IDE 1.3 已發佈

發佈 | Torsten Juergeleit | 2006 年 4 月 25 日 | ...

親愛的 Spring 社群,

我們很高興地宣布 Spring IDE 1.3 已經發佈。

此版本的 Spring IDE 提供了一些 新功能 和一大堆錯誤修復。有關完整列表,請造訪 http://springide.org/project/milestone/Release%201.3

變更

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

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

錯誤報告可透過 http://springide.org/project/newticket 開啟工單

使用 AspectJ 和 JMX 的訊息流追蹤

工程 | Ben Hale | 2006 年 4 月 25 日 | ...

在我過去工作的一個專案中,我們有一個系統可以從設備接收訊息,並決定是否將該資訊傳遞給使用者。有多個決策層級,我們總是會問自己,訊息在系統中傳遞的過程中是否遺失。

在我們轉移到 Spring 之前,幾乎不可能回答這個問題。我們嘗試使用日誌記錄,但針對訊息進行決策的數量非常龐大,充其量只是繁瑣。我們也嘗試使用除錯器,但組合...

Spring Framework 2.0 M4 發佈

發佈 | Juergen Hoeller | 2006 年 4 月 24 日 | ...

親愛的 Spring 社群,

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

Spring 2.0 M4 是下一代 Spring 的第四個里程碑。

新增和值得注意的功能包括

  • 更新的 JPA 支援
  • JDBC 存取的具名參數支援
  • 精簡的 XML 模式命名空間
  • 自動代理 FactoryBean 建立的物件
  • 以及變更日誌中記錄的許多其他改進。

此版本還包含自 M3 以來發現的許多問題的修復。 建議先前里程碑的使用者更新。 有關所有 M4 變更的詳細資訊,請參閱變更日誌

隨著此版本的發佈,我們正在接近 2.0 生產目標的功能凍結,僅計畫在 2.0 中包含一些額外的功能和改進。 下一個版本將是 Spring 2.0 Release Candidate 1 (RC1),預計在五月發佈。

我們還將在幾天內發布 1.2.8 維護版本,將 2.0 M4 中的所有適用修復向後移植。 (這已經可以從 CVS 中的 mbranch-1-2 獲得,等待最終測試。)

享受並繼續提供回饋,

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

Spring 2.0 的 JMS 改善

工程 | Ben Hale | 2006 年 4 月 09 日 | ...

隨著 Spring 1.1 的發佈,Spring 社群首次體驗了 JMS 支援。 此支援包括異常轉換、訊息轉換和範本類,很像 JdbcTemplate。 此支援還負責 JMS 1.0.2 和 1.1 規格之間的網域統一。 此支援的核心是 JmsTemplate 類及其 JMS 1.0.2 對應物 JmsTemplate102

與使用原始 JMS API 進行企業訊息傳遞相比,此支援是一個很大的改進。 然而,它確實有一個缺點; JmsTemplate 僅支援使用 JmsTemplate.receive() 方法同步接收訊息。 這種行為對很多人都有效,但絕大多數使用者最終都會推出自己的非同步消費者實作。 簡而言之,他們想要 EJB 2 所謂的 訊息驅動 Bean...

喜愛 Spring 2.0 的另一個原因:攔截器組合

工程 | Ben Hale | 2006 年 4 月 09 日 | ...

最近,我正在開發一個專案,該專案有一個 Swing 客戶端通過 RMI 與服務層通信。 服務層標有交易,一切似乎都運作良好。 但是,每當我們在 Hibernate DAO 層發生異常時,Spring 都會將異常轉換為運行時異常,並將其一直傳播到堆疊頂端,並透過 RMI 連接作為 RemoteException。 每當反序列化異常時,客戶端上都會出現異常(與 RemoteException 分開)。 決定簡單地引入一個面向。 任何異常...

Spring 2.0 中的 POJO 面向:一個簡單的範例

工程 | Mark Fisher | 2006 年 3 月 22 日 | ...

雖然此文章中的材料非常簡單,但實際上它將提供 Spring 2.0 中一些相當重要的新功能的概況。 我希望透過一點想像力,您可以將您在此處看到的內容應用到您自己不太重要的用例中。

我實際上將展示 2 個範例。 第一個將使用一個非常簡單的日誌記錄器


package example;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SimpleLogger {

  private static Log log = LogFactory.getLog(SimpleLogger.class);

  public void logOneString(String s) {
    log.info…

獲取 Spring 新聞稿

隨時了解 Spring 新聞稿

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

了解更多

獲得支援

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

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看全部