Spring 2.0 Release Candidate 3 發佈
親愛的 Spring 社群,
我們很高興宣布 Spring 2.0 RC3 已經發佈。 下載 | 文件 | 變更記錄
這個第三個候選版本包含許多基於我們收到的關於先前候選版本有價值的用戶反饋的改進。 透過此版本,Spring 2.0 最終版即將推出。
最重要的改進包括
- Spring 1.2 相容性已針對 default-lazy-init="true" 恢復,關於按類型檢測特殊 bean(例如 PropertyPlaceholderConfigurers)。 同時,重新設計了延遲類別載入,以允許類別名稱等中的佔位符。 嚴格的延遲類別載入仍然可以針對特殊 ApplicationContext 強制執行。
- 基於 @Repository 註解的持久性例外轉換現在也適用於 Hibernate3、JDO 和 TopLink,而不僅僅是 JPA。 例外轉換現在盡可能基於底層 ORM 工具的本機例外,只有在明確指定時才應用 Spring 特定的 SQLException 轉換。
- 在我們的 JMS 支援中,DefaultMessageListenerContainer 具有經過改進的資源處理(也適用於 JBoss 4.0),並且能夠從損壞的連線或目標恢復。 JMS 資源的快取現在是完全可配置的,XA 和非 XA 情境都具有合理的預設值。 此外,JmsTemplate 在 JTA 交易中重複使用快取的 JMS 資源。
- Servlet 和 Portlet Web MVC 現在支援通用的 WebRequestInterceptor 抽象,允許在 View 攔截器中跨 Servlet 和 Portlet 環境重複使用 Open Session/EntityManager/etc。 因此,所有此類特定於 Portlet 的攔截器都已被刪除,以支持新的通用攔截器(OpenSessionInViewInterceptor 等)。
當然,在細節方面還有許多進一步的改進。 請參閱變更記錄檔(以及 JIRA 中的變更記錄)以了解詳細資訊。
請告知我們您可能遇到的任何剩餘問題。 Spring 2.0 最終版本即將推出。
Spring Framework 開發負責人
消息驅動 POJO!
在所有新的 Spring 2.0 功能和改進中,我必須承認消息驅動 POJO 是我個人最喜歡的功能之一。 我覺得許多其他 Spring 用戶也會有同樣的感覺。
我在這裡提供一個快速的介紹。 還有很多東西要展示,我會繼續發布其他文章。 不過,就目前而言,這應該為您提供足夠的資訊,以便開始使用一些真正的基於 POJO 的非同步 JMS! 我希望您和我一樣對此感到興奮 ;)
先決條件
您需要在您的類別路徑中包含以下 JAR 檔。 我還列出了我正在使用的版本(任何 spring-2.x 版本都應該可以。事實上,我剛剛在 2 分鐘前將 RC3 放入其中)
- activemq-core-3.2.2.jar
- concurrent-1.3.4.jar
- geronimo-spec-j2ee-managment-1.0-rc4.jar
- commmons-logging-1.0.4.jar
- log4j-1.2.9.jar
- jms-1.1.jar
- spring-2.0-rc3.jar
設定環境
首先,我們需要設定環境。 我將使用 ActiveMQ,但變更供應商的影響將僅限於此檔案中的修改。 我將這個檔案稱為 "shared-context.xml",因為您很快就會看到,我將為 JMS 通訊的雙方導入這些 bean 定義。 這是 "共享的" bean 定義:連線工廠和兩個佇列(一個用於請求,一個用於回覆)
<?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.xsd">
<bean id="requestQueue" class="org.activemq.message.ActiveMQQueue">
<constructor-arg value="requestQueue"/>
</bean>
<bean id="replyQueue" class="org.activemq.message.ActiveMQQueue">
<constructor-arg value="replyQueue…
使用 Spring 2.0 和 AspectJ 簡化企業應用程式
我為 InfoQ 網站撰寫的一篇文章剛剛上線: 使用 Spring 2.0 和 AspectJ 簡化企業應用程式。
我聽到許多人說 "AOP 太難了" 或 "AOP 使事情變得太複雜了"。 在某種程度上,這篇文章是為了反駁這些觀點而寫的(因此標題為 "簡化企業應用程式開發")。 我的意思是,AOP 的重點是您採用變得複雜和糾纏在一起的軟體,並透過引入切面,再次賦予每個模組單一的責任來簡化實作。 然後,當然,對於某些...
在 Spring 中使用 JPA 而不參考 Spring
Spring 2.0 增加了對 JPA 資料存取標準的支援,其中包含人們期望的所有 標準 Spring 支援類別。 Mark Fisher 撰寫了一篇 很棒的文章,說明如何使用這個新的支援。 然而,我們一直收到的問題之一是,為什麼人們會想使用 Spring 類別 (JpaTemplate) 來存取 EntityManager。 這個問題的最佳答案在於 JpaTemplate 提供的附加價值。 除了提供 Spring 資料存取的標誌性單行便捷方法之外,它還提供自動參與交易和從 ...轉換
關於 Spring 的 10 個常見誤解
昨天有一些與即將出版的 Beginning Spring 2 書籍相關的文章,我想在這裡指出這些文章。
首先,由於這本書將引起那些剛接觸 Spring 的人 - 甚至是那些目前只是好奇的人的興趣,因此我們決定最好包括一些關於 Spring 常見誤解的討論。 這些已發布在這裡
http://www.oreillynet.com/onjava/blog/2006/08/ten_common_misconceptions_abou.html
以及在 Apress 部落格上: http://ablog.apress.com/?p=1221。
其次,Interface21 的 Steven Devijver,這本書不知疲倦的主要作者,發布了一篇很棒的概述
http://blog.interface21.com/main/2006/08/03/finishing-beginning-spring-2-from-novice-to-professional/.
這本書 Beginning Spring 2: from Novice to Professional 將於今年十月上市。 雖然它的目標是為新的 Spring 用戶提供溫和的介紹,但即使您已經使用 Spring Framework 一段時間,它對於 "填補空白" 也非常有用。 換句話說,這本書涵蓋了許多方面:Spring 容器、AOP、資料存取、MVC 等。 涵蓋範圍包括許多新的 Spring 2.0 功能 - 最值得注意的是,整章探討了 Spring 全新且經過改進的 AOP 方法,例如基於 XSD 的 AOP 命名空間、與 AspectJ 切入點表達式語言的整合和 @AspectJ 整合! (別擔心,Spring 2 向後相容 - 且遷移路徑也很容易)。 始終如一地,本書提供了理論和範例的實用平衡。 這些範例由一個有趣的範例應用程式(不太過於簡單化)支援。 當 Steven 要求我貢獻一些練習時,我個人感到很高興 - 這是他為初學者提供卓越資源的另一個偉大想法。 第一組練習逐步介紹了從基本連接到使用 FactoryBeans 和外部化屬性檔案的幾種依賴注入技術。 第二組練習側重於 AOP - 包括新的命名空間和 @AspectJ 樣式。
我們期待在本書發佈後建立一個活躍的配套網站,當然,您仍然可以在 Interface21 團隊部落格上找到許多關於 Spring 2.0 功能的精彩討論和範例。
12 月在佛羅里達州好萊塢體驗 Spring
在過去的一個月中,Jay Zimmerman 和我一直在努力規劃 The Spring Experience 2006 (TSE)。 創建一流的技術會議並非易事 - 需要花費無數的時間才能找到演講者和內容的完美組合。
我很自豪地說我們現在已準備好推出前所未有的活動。 看看這個
我希望在那裡見到你。 這是讓我相信這個節目與眾不同的地方- 在三星級海灘度假村的 5 個主題,3 個整天內共計 55 個 90 分鐘的課程。
- 關於 Spring 2.0 的獨家高級技術內容。 一半的課程由核心 Spring 開發人員領導,他們在內部和外部應用最新的 Spring 功能。 這包括 Rod Johnson、Juergen Hoeller、Adrian Colyer、Rob Harrop、Colin Sampaleanu、Ben Alex、Arjen Poutsma、Erwin Vervaet 以及我本人。
- 來自領先 Java 軟體創新者的前沿課程。 這包括 Eclipse RCP 和 Equinox 專案的負責人 Jeff McCaffer; Groovy 專案負責人 Guilluame LaForge; JMX 負責人 Eamonn McManus; BEA Kodo JPA 負責人 Patrick Linskey 和 Java 持久性架構 (JPA) 負責人 Mike Keith。
- 來自知名業界專家的真實見解。 這包括 Eric Evans,不朽著作《領域驅動設計》的作者;Luke Hohmann,軟體商業專家和《超越軟體架構》的作者;Ramnivas Laddad,Interface21 負責人和《AspectJ實戰》的作者;Venkat Subramanium,《敏捷開發者實踐》的作者;Floyd Marinescu,InfoQ.com 的創建者;解決方案架構師 Mark Richards (IBM) 和 Jim Clark (Oracle),以及 Mike Stenhouse,可用性專家和 Content With Style 的作者。
- 在展會結束後,所有課程都有同步音訊的幻燈片可供特權存取,讓您不會錯過任何精彩內容。
- 註冊即包含完整早、午、晚餐。
- 「與大師會面」使用者 BOF 會議。 這是 Spring 使用者與 Spring 專案負責人互動的絕佳機會。
- 兩個超棒的派對,一個在星期五晚上,另一個在星期六下午在海灘上舉行,還有 Spring 使用者 vs. 開發人員的排球比賽。
- 酷炫的會議紀念品。 而且數量眾多。 註冊的體驗者將獲得一張全通會議通行證、一個客製化(而且非常酷)的 TSE 筆記型電腦包、一個客製化設計的筆記本活頁夾、一件限量版的 TSE 2006 T恤,甚至還有一條官方 TSE 2006 海灘巾。 您將有機會贏得 iPod 和 XBox 360。
- 多元性。 無論您是硬派企業開發人員、Web 應用程式開發人員還是領先的軟體架構師,這次會議都能滿足您的需求。 去年展會吸引了來自 20 個國家/地區的 250 人參加。 今年我們預計將有來自 25 個以上國家/地區的 500 名與會者。 這將會非常有趣,並且是一個很棒的學習和交流機會。
Spring 2.0 中的 AOP 配置選擇
在 Interface21 工作有很多原因,但最好的莫過於與行業領導者一起工作。 例如,Spring 2.0 的一個主要重點是改進 AOP 支援。 我們新增了一個新的配置命名空間、AspectJ 切入點語言和對@AspectJ 切面的支援。 但這留下了一個大問題:在 Spring 2.0 中編寫切面的首選方式是什麼? 由於我是 I21 的員工,我很幸運能夠直接從源頭獲得答案。
我向 Interface21 的首席科學家 Adrian Colyer 提出了這個問題,並且…
完成「Beginning Spring 2: from Novice to Professional」
為了慶祝新的 i21 團隊部落格的推出,我藉此機會介紹一本即將推出的 Spring 新書。 書名為「Beginning Spring 2: from Novice to Professional」,由 Apress 出版。 我與 Mark Fisher (i21)、Bram Smeets (DWR 的名人) 和 Seth Ladd (「Expert Spring MVC and Web Flow」的名人) 共同撰寫了本書。 Rob Harrop 是技術審閱人。
顧名思義,本書的目標讀者是 Spring Framework 的初學者。 現在 Spring 有趣的地方在於,您總是在某些領域是初學者。 該框架提供了很多…
您期待 Spring 2.0 中的哪些內容?
Spring 2.0 即將推出,我個人感到非常興奮。 我仍然記得去年在The Spring Experience第一次聽到該版本中所有新功能的時刻。 異步 JMS 消息接收和 AOP 與 AspectJ 的整合最讓我興奮(實際上涉及到一點流口水),但即使如此,還有許多其他改進,而且列表只在不斷增長。
唉,我知道你們大多數人不像我一樣是中介層的書呆子,那麼您們對什麼感到興奮呢? 新的 XML 方言和 XSD 支援? 改進的 JSP 標籤庫? 那麼這個呢?<tx:annotation-driven />? 也許你喜歡 Groovy…