top
Loading...
Spring破冰之旅始于足下

生活在一個信息爆炸的時代是幸福的也是痛苦的,幸福是因為新技術總是層出不窮,痛苦是因為總是處于追趕新技術的旅程中。近兩年Java程序員對此可能深有感觸,Java開源的新旺發達,使我們始終處于目不暇接的狀態中,很多同領域技術問題都擁有多個可供選擇的技術框架,而Spring開源框架是其中的佼佼者,已成為企業應用開發中使用最多的開源框架。Spring框架的優秀不但表現在其優雅的底層設計、使用方便快捷、面向工作實踐、超強粘合能力等方面,另外一個不可忽視的方面是Spring擁有一個世界一流且活躍的技術開發團隊:Spring技術的革新、功能的新增從來就沒有停止過。

Spring團隊在2006年初就發布了Spring 2.0的里程碑版本,后來又發布了多個RC版本,在2006年10月發布了Spring 2.0的正式版本。正式版本發布后,又以2.0.x的形式陸續發布了5個小版本,在2007年5月發布了Spring 2.1正式版本。較之于1.x版本,Spring框架發生了很多重大革新。雖然Spring 2.x是向下兼容的,但是1.x中同類問題已經擁有了更簡單更優異的實現。對于一個剛剛學習Spring的開發者而言,拋開1.x版本,直接學習Spring 2.x無疑是最佳的選擇。對于需要從Spring 1.x進行升級的開發人員而言,也很有必要了解Spring 2.x的許多重大的變化,因為這些變化不但顯著降低了應用開發的難度,而且代表了技術發展的方向。

Spring企業應用開發

很多程序員都有這種經歷,面對市場上琳瑯滿目的書籍不知該作何選擇,筆者也曾為此犯愁(也多花了不少冤枉錢)。以Spring為例,目前市場上各出版社出版的Spring書籍共有幾十種之多,面對這樣多類似的書籍,你很難做出正確的選擇。不過有經驗的人可以通過書中介紹的技術版本,內容結構來作出選擇,沒有經驗的估計對那些21天速成類的書籍更感興趣,不過我是不會為這種書掏一個大子的,甚至翻一下的興趣都沒有。在我看來程序開發是一個嚴謹的工作,沒有速成道路可走,知其然不知其所以然,是絕對不行的,請記住學習沒有捷徑。

不過我還是忍不住要說說《精通Spring 2.x--企業應用開發精解》,該書的作者我認識好多年了,他給我的印象是治學嚴謹,一絲不茍。從這本書中我們可以看出,作者把自己多年開發經驗融合在其中,可謂集其數年心血而得,而不是簡單的翻譯外文資料(很多作品是這樣得來的)。更不容易的是基于當前最新的Spring 2.1版本寫就的,是當前市面上和Spring最新版本保持同步的書籍,僅此一點該書就能保證其技術在一年之內不會失效。

首先本書對Spring框架的技術內幕進行皰丁解牛般的解構,清晰地講解了Spring框架的各個組成部分。我們知道Spring以IoC和AOP為技術底座,但是對于Spring究竟如何解決IoC和AOP的問題,很少書籍能給出清晰的答案。原因在于這兩個技術涉及到眾多Java高級技術的知識,使用到眾多的Java編程模式,要把這一問題講清楚,首先就得將這些背景技術鋪墊好。對于一本以Spring為主題的書籍來說,如何通過很少的篇幅將這些背景知識傳導給讀者是存在難度的。一般書籍采取回避的做法,本書可貴之處在于不怕啃硬骨頭,它通過不多的篇幅為讀者掃清了理解Spring技術內幕的路障。而且背景知識的補充是適時適地的,沒有和相關知識割裂開來,這一點我非常欣賞!另一方面,本書從Spring運作流程和組成構件這兩條主線對Spring IoC和AOP進行了深度的分析,圍繞在Spring框架外面的神秘面紗被層層剝離,Spring機器的外殼被打開,一部有條不紊,分工明確Spring機器的內部細節豁然于讀者的眼前。

可能有些讀者會認為:我是在使用Spring,并不需要知道Spring內部細節,因雞蛋好吃而拷究起生蛋的母雞來又何苦呢?這種看法并非沒有道理,但是透徹理解Spring技術內幕的好處也是非常明顯的。首先,我們可以更好地使用Spring,就拿Spring初始化流程來說,如果你精確地知道這一過程有哪些可控節點及運作機理,那么你就可以靈活地利用這些知識實現一些自己的特殊需求(如使用加密的配置文件,向IoC容器中注入自定義編輯器等等)。其次,通過學習國際頂級大師的優秀設計可以在短時間內大幅提高你的Java技術水平,因為沒有什么比通過分析一個鮮活技術案例更快提升自己Java技術水平的方法了。

本書共有800余頁,對于實用性強的知識進行了深入分析、深度挖掘,而對于不常使用的內容則點到為止,甚至大膽舍棄——這樣,本書很好地做到實用性和深入性二者的統一,避免了什么都講什么又淺嘗輒止的偽全面。舉例來說,該書對使用XFire開發基于Spring的Web Service應用、Acegi安全控制框架以及在Spring中使用JPA這些實用性強的技術都進行了深入的分析,而對如何集成EJB、JMX、JCA等這些不常使用的功能不加涉及。

也許是因為作者是一線開發人員的緣故,眾多實踐經驗,應用提示等內容貫穿于全書始末,這無疑成為本書的一大看點。Spring框架提倡選擇性,因此同一領域的技術就有多種可供選擇的實現方案,作為一個開放式的框架來說,Spring的這種理念無疑是值得推崇的,但是對于初學者來說,這種多選擇性卻給他們帶來了困擾。作者在介紹Spring所集成的第三方技術時,對它們的適用場景進行了恰當的分析,為讀者指明了方向。具體到某一技術時,又有許多使用經驗穿插其中。如第13.6小節就講述了在實際應用中開發任務調度程序所應該注意的各項問題,包括任務產生方式和群集環境下任務應用的考量,這些知識很少書籍有涉及,這些內容體現了富有經驗開發人員的創作優勢。

本書另一個難得可貴之處在于不但內容做到了深入全面,面向實踐,而且在表現形式上有著許多令人印象深刻的獨到之處。首先,全書圖文并茂,大量精美的圖表點綴其中,對上下文內容的理解起到了很好輔助作用。其次,本書采用了標注式代碼注解的新穎方式,將注解和代碼本身融為一體,方便代碼的閱讀。另外全書每一章幾乎都有配備了一個或多個“輕松一刻”的短文,這些短文和上下文的內容存在一定聯系,但本身是一段獨立的趣味小文。如在作者在批評IoC這個專業術語取名不佳時,就提供了一段米芾因名擇婿的小故事;在講解AOP的概念時,作者還擬了一個“AOP 打一成語”的謎語。這些短文給嚴謹,枯燥的技術書籍增強了興趣性。老外的技術書籍在這點上做得不錯,本書作者在這一方面是可以加分的。

總的來說,在國內眾多的Spring技術圖書中,這本《精通Spring 2.x--企業應用開發精解》來自開發一線經驗豐富的實踐型專家,整體質量非常高,是目前本類圖書市場上一個高質量的典范。近年來,逐漸出現一批由中國本土開發人員撰寫的中、高端技術圖書,由于他們經驗豐富、認識深刻,而且具有表達上的優勢,對中國實際產業狀況更為了解,所以寫出來的技術圖書更接近國情實際,更容易為讀者所接受,受到了讀者的普遍歡迎。本書就是典型的本土技術圖書中的精品,我們樂于向廣大Java學習者和一線程序員推薦。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗