摘錄地址:http://www.dearbook.com.cn/WebResource.aspx?id=602
最近有人問我學習
Spring
的經驗。心中不免有些慚愧,本來以為自己對
Spring
算比較精通啦,但最近看
Professional Java development with SpringFramework
,發現其實自己還有好多東西不知道。不過既然有人問起,就大概談一下體會吧,由于我自己的途徑與下面所列的步驟還是有些差距的(主要是當時關于
Spring
的書和參考資料太少了),而且每個人的學習方式也會不同,所以只能作為參考了。
?
一 一、首先
Java
的基礎、面向對象的基礎和設計模式的基礎知識是必不可少的。
如果連這些基礎知道都不夠扎實的話,我建議還是先去補補課。關于設計模式我覺得不用學太多,但以下三個模式是學習
Spring
必不可少的:
factory
模式(包括簡單工廠和抽象工廠),
Strategy
模式,
Template method
模式。如果不掌握這些你就根本沒法領悟
Spring
的精髓,只能依樣畫葫蘆地照搬,這是很可怕的事。
關于這方面的書的建議已經夠多的,我就不說了。我這里強烈建議的書可能讓人有點意外,那就是
Expert one on one J2EE design and development
的第四章,這一章不僅僅是
Spring
初學者,而是任何搞
Java
開發的人必讀的一章。經典!
二、接下可以看一些
Spring
的入門書籍
其實我自己沒怎么看過這方面的書,我當時只看過
Spring
的
reference
,不過現在這方面的書好象多的是,而
Spring reference
看起來還是有些吃力的。
JavaEye
上很多人建議
夏昕的
Spring開發指南
,據說入門很容易。另外的入門書應該是
Spring live
或
Spring in action
。我大概掃了一下,
Spring live
是一本只講怎么做而不講為什么的書,我不太喜歡(偶爾參考一下倒不錯),不過有些人特別喜歡這樣的書,看自己的個人愛好吧。
三、研究幾個用
Spring
做的開源項目
理論還是要與實際結合,所以看完書后是要看實際的項目的。很多人喜歡
appfuse
,我覺得
appfuse
花的東西太多,真正實質性的內容又太少。我更喜歡
Spring
自帶的
jpetstore
,這是一個非常完整的例子,看完后
Spring
的基本用法應該都能掌握。
四、開始做實際的項目
在上述這些都完備以后,我覺得應該要去實際項目中鍛煉了。當然并不是每人都有這樣的機會的,這時只能自己做個玩具項目啦。項目的鍛煉是非常關鍵的,其實每個人都清楚,我就不重復了。
五、繼續深入學習
經過項目的錘煉,對
Spring
的用法和原理有了一定的了解的時候,才有可能真正掌握
Spring
的精髓。這時要讀的書才是
Rod Johnson
的三本經典名著,分別是:
Expert one on one J2ee design and development
Expert one on one J2ee without EJB
Professional Java Development with SpringFramework
前兩本書的經典程度我就不說了,只有讀了它們,才能真正了解
Spring
的設計意圖,掌握
Spring
的精髓。
第三本書是我強烈不建議初學者讀的書。里面的東西深入而全,但是原理講解得又不夠深,很容易讓初學者犯迷糊。但是卻是
Spring
的高級用戶必讀的一本書(還有一本
pro Spring
據說也不錯,不過我沒讀過)。我過幾天會寫一下這本書的書評。
當然這個階段與第四階段是交錯的,邊讀書邊做項目學到的東西才會更多的。
六、分析源代碼,擴展
Spring
有人認為沒有必要分析
Spring
的源代碼,因為這是很累人又不計好的事。但是要想成為
Spring
的高級用戶,這是必經的階段。在學習的過程中,我們學到的不僅是
Spring
,更重要的是他的設計思想。不管怎樣,看牛人的源代碼是絕對有好處的。不過這是一個很累人的過程,要有思考準備哦!
七、等我到這個階段的時候再告訴你吧,哈哈!