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