完成「Beginning Spring 2:從新手到專家」

工程 | 管理員 | 2006 年 8 月 3 日 | ...

為了慶祝新的 i21 團隊部落格的推出,我藉此機會介紹一本即將推出的 Spring 新書。它的標題是「Beginning Spring 2:從新手到專家」,由 Apress 出版。我與 Mark Fisher (i21)、Bram Smeets (DWR 成名) 和 Seth Ladd (「Expert Spring MVC and Web Flow」成名) 共同撰寫了這本書。Rob Harrop 是技術審閱人。

正如您可能猜到的那樣,本書的目標讀者是 Spring Framework 的初學者。現在關於 Spring 有趣的是,您總是在某些領域是初學者。該框架提供了如此多的功能和整合,以至於您不可能全部了解它們(Juergen 除外)。

這就是為什麼我們沒有過於嚴格地看待“初學者”這個詞的原因。當然,本書確實為那些在書店拿起這本書並且實際上沒有聽說過 Spring 的人介紹了 Spring Framework。此外,Spring 的初學者通常不是 Java 開發的初學者。而且由於本書還涵蓋了許多新的 Spring 2.0 功能,因此幾乎所有 Spring 用戶(當然還有 Ben Hale)都會發現至少一些章節很有趣。

我們採用了問題解決和實用建議的方法。在每一章中,我們都會列出開發人員通常在該領域面臨的挑戰,並討論一些常見的陷阱並提供範例。接下來,我們介紹 Spring 解決方案以及讀者如何透過在他們的應用程式中使用這些解決方案而受益。我們發現,首先列出問題,然後討論 Spring 解決方案,更容易掌握 Spring 中的想法並理解解決方案。

因此,我相信這本書對於那些已經在專案中使用 Spring 一段時間但從未真正有機會退一步思考解決方案背後的問題的人來說,會很有趣。

以下是章節大綱

第 1 章是對現代應用程式開發的介紹。它概述了配置的挑戰以及將架構限制為狹窄的程式設計模型的危險。它介紹了諸如依賴查找 (Dependency Lookup) 和依賴注入 (Dependency Injection) 等概念,並將 Spring 置於 JEE 技術的背景下。它介紹了框架的核心價值:整合、改進、增加一致性、使其更易於使用、記錄和提高標準。

第 2 章介紹了 Spring 容器及其 XML 配置文件。這是一個相當廣泛的覆蓋範圍,介紹了 Spring 用戶可用的靈活性。例如,FactoryBean 和 factory 方法的使用被相當詳細地涵蓋,因為它可以為應用程式增加很大的靈活性。bean 生命週期被介紹,因為了解這種可擴展性點對於 Spring 2.0 中的 Spring 用戶變得更加重要。

第 3 章涵蓋了經典 Spring AOP 框架。我們發現如果不將讀者溫和地引入核心 AOP 概念,我們就無法涵蓋新的 Spring 2.0 功能:問題是什麼、什麼是 AOP 以及它是如何解決問題的?什麼是 Advice,有哪些不同的類型?什麼是 Proxy 物件以及如何配置它們的建立?什麼是連接點 (Join Points) 和切入點 (Pointcuts)。最後,本章展示了一些 Spring 如何在內部使用 AOP 的範例?本章基於 Spring 1.2,是下一章的起點。

第 4 章可能是我的(而且我確信也是 Ben 的)最愛,因為它涵蓋了 Spring AOP 2.0。Adrian 在 Spring 2.0 參考手冊中撰寫了一個優秀的章節,介紹了新的 AOP 功能。本章節奏較慢。它基於第 3 章中的 AOP 概念,並介紹了 Aspects 和 AspectJ 切入點語言。它基於 @AspectJ 風格,但也涵蓋了 XML 中 Aspects 和 Advisors 的宣告。它還介紹了自動代理建立 (Auto Proxy Creation),這是 Spring 2.0 中的一個關鍵功能,儘管它已經在 Spring 1.x 中可用。本章是所有 Spring 用戶必讀的一章。

在書的背面,有針對第 2、3 和 4 章的練習,這些練習提供了額外的上下文,並幫助讀者獲得 Spring 的實務經驗。

第 5 章是對資料存取的介紹。當我第一次撰寫本章時,它非常簡短,並介紹了 Spring 的資料存取框架。然後我了解到,讓用戶更好地理解資料存取所面臨的挑戰會很有趣。因此,我重寫了本章,現在它的一半內容涵蓋了典型的資料存取問題:管理資料庫資源、資料存取異常的問題、交易管理的問題以及資料存取對應用程式的總體影響。接下來,它涵蓋了 Spring 如何解決這些各種問題,以及如何在應用程式中找到資料存取的合適位置。

第 6 章涵蓋了如何在您的應用程式中使用 JdbcTemplate,以使用 SQL 在資料庫中插入、更新、選擇和刪除資料。

第 7 章是對在您的應用程式中使用 Spring 的交易管理的實務介紹。它還涵蓋了 Spring 2.0 中簡單的交易管理配置。您是否知道 Spring 2.0 提供了 6 (!) 種配置交易管理的方式?這就是靈活性。

第 8 章實務介紹了 Spring MVC。它概述了一個典型的 Web 層,然後介紹了 Spring MVC 的元件。它有三個範例,範圍從分頁唯讀清單到複雜的表單處理。對於想要了解更多關於 Spring MVC 的現有 Spring 用戶來說,這是一個很棒的章節。它還涵蓋了 Spring 2.0 JSP 表單標籤。

第 9 章是實務操作,涵蓋了 Spring MVC 支援的一些視圖技術,例如 JSTL、Velocity、Freemarker、XSLT、PDF、Excel 和 JasperReports。

最後,第 10 章涵蓋了測試。它強調了測試的重要性以及 JUnit、EasyMock 和用於編寫整合測試(有些人稱它們為功能測試)的 Spring 類別。

在本書中,我們使用了一個範例應用程式,該應用程式處理網球俱樂部和網球錦標賽的許多方面。我們認為,如果讀者和整個 Spring 社群可以存取一個相當複雜的範例應用程式,那將會很好。它為我們提供了一種分享我們關於 Spring 如何融入真實應用程式的想法的好方法。我們仍在努力完成範例應用程式,但我可以告訴您,它將包含大量關於我們選擇使用的設計和配置的額外閱讀材料。

正如您所注意到的,本書沒有涵蓋 Hibernate。我們認為從頭開始正確地解釋 Hibernate *以及*如何將其與 Spring 一起使用太難了。最後,我們稍微改變了主意,並認為如果讀者有一些 Hibernate 材料會很好。因此,將提供一個線上獎勵附錄,介紹 Hibernate 背後的基本概念以及 Spring 如何促進其使用。對於那些尚未涉足物件關係對應工具的人來說,這是一個起點。

那麼這本書什麼時候上市?根據目前的計畫,本書將於十月底上市。您現在可以預購了。我們希望 Spring 用戶會喜歡這本書。我將在接下來的幾週內隨時向您報告我們的進度。

獲取 Spring 電子報

保持與 Spring 電子報的連線

訂閱

取得領先

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

了解更多

取得支援

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

了解更多

即將舉行的活動

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

檢視全部