一、首先Java的基礎(chǔ)、面向?qū)ο蟮幕A(chǔ)和設(shè)計(jì)模式的基礎(chǔ)知識是必不可少的。
關(guān)于設(shè)計(jì)模式我覺得不用學(xué)太多,但以下三個(gè)模式是學(xué)習(xí)Spring必不可少的:factory模式(包括簡單工廠和抽象工廠),Strategy模式,Template method模式。如果不掌握這些你就根本沒法領(lǐng)悟Spring的精髓,只能依樣畫葫蘆地照搬,這是很可怕的事。
我這里強(qiáng)烈建議的書可能讓人有點(diǎn)意外,那就是Expert one on one J2EE design and development的第四章,這一章不僅僅是Spring初學(xué)者,而是任何搞Java開發(fā)的人必讀的一章。經(jīng)典!
二、接下可以看一些Spring的入門書籍
其實(shí)我自己沒怎么看過這方面的書,我當(dāng)時(shí)只看過Spring的reference,不過現(xiàn)在這方面的書好象多的是,而Spring reference看起來還是有些吃力的。JavaEye上很多人建議夏昕的Spring開發(fā)指南,據(jù)說入門很容易。另外的入門書應(yīng)該是Spring live或Spring in action。我大概掃了一下,Spring live是一本只講怎么做而不講為什么的書,我不太喜歡(偶爾參考一下倒不錯),不過有些人特別喜歡這樣的書,看自己的個(gè)人愛好吧。
三、研究幾個(gè)用Spring做的開源項(xiàng)目
理論還是要與實(shí)際結(jié)合,所以看完書后是要看實(shí)際的項(xiàng)目的。很多人喜歡appfuse,我覺得appfuse花的東西太多,真正實(shí)質(zhì)性的內(nèi)容又太少。我更喜歡Spring自帶的jpetstore,這是一個(gè)非常完整的例子,看完后Spring的基本用法應(yīng)該都能掌握。
四、開始做實(shí)際的項(xiàng)目
在上述這些都完備以后,我覺得應(yīng)該要去實(shí)際項(xiàng)目中鍛煉了。當(dāng)然并不是每人都有這樣的機(jī)會的,這時(shí)只能自己做個(gè)玩具項(xiàng)目啦。項(xiàng)目的鍛煉是非常關(guān)鍵的,其實(shí)每個(gè)人都清楚,我就不重復(fù)了。
五、繼續(xù)深入學(xué)習(xí)
經(jīng)過項(xiàng)目的錘煉,對Spring的用法和原理有了一定的了解的時(shí)候,才有可能真正掌握Spring的精髓。這時(shí)要讀的書才是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è)計(jì)意圖,掌握Spring的精髓。
第三本書是我強(qiáng)烈不建議初學(xué)者讀的書。里面的東西深入而全,但是原理講解得又不夠深,很容易讓初學(xué)者犯迷糊。但是卻是Spring的高級用戶必讀的一本書(還有一本pro Spring據(jù)說也不錯,不過我沒讀過)。我過幾天會寫一下這本書的書評。
當(dāng)然這個(gè)階段與第四階段是交錯的,邊讀書邊做項(xiàng)目學(xué)到的東西才會更多的。
六、分析源代碼,擴(kuò)展Spring
有人認(rèn)為沒有必要分析Spring的源代碼,因?yàn)檫@是很累人又不計(jì)好的事。但是要想成為Spring的高級用戶,這是必經(jīng)的階段。在學(xué)習(xí)的過程中,我們學(xué)到的不僅是Spring,更重要的是他的設(shè)計(jì)思想。不管怎樣,看牛人的源代碼是絕對有好處的。不過這是一個(gè)很累人的過程,要有思考準(zhǔn)備哦!