比如我學(xué)多線程,只能很簡單的寫幾個簡單的demo,寫個什么消費者模式,工作當(dāng)中也用不上,不知道具體的應(yīng)用場景,比如dubbo和springcloud,也只是說跟著博客搭一個很簡陋的demo,什么功能都沒有的,面試的時候如果稍微深入的問一些東西就打不上來了,這種情況下個人能力要怎么樣去拓展?
本質(zhì)上框架就是為了解放生產(chǎn)力和提供一個通用的降低復(fù)雜度的解決方案。
那平時自學(xué)的時候能遇到多復(fù)雜的需求呢,所以基本學(xué)到增刪改查就繼續(xù)不下去了,畢竟大部分業(yè)務(wù)的的確確就是從 DAO 到 Controller 都是一路套下去的 CRUD 都夠用了(這里不討論設(shè)計模式、架構(gòu)設(shè)計、分層等等,那都要看場景)。
都說設(shè)計模式這些好呀、方便重構(gòu)啊、提高抽象啦、解耦啦,可是要解決的麻煩沒到那種量級,照著 copy 一個 demo 可能還是不知道這東西究竟好在哪里。
所以個人做法是,在遇到更復(fù)雜的需求前,選一個框架(看你的描述,Spring Framework 應(yīng)該再合適不過了),閱讀官方文檔,了解它是怎么暴露接口給外部的,那些接口的名稱一般也可以看成它用了什么設(shè)計模式來實現(xiàn)解耦,那么可以說是一舉多得:深入了解 Spring、觀察設(shè)計模式的實踐方式、追蹤源碼鍛煉調(diào)試技能。
當(dāng)然,Spring 這種東西已經(jīng)太過大而全了,哪怕只是個 Hello World 也是七拐八拐,一個 Context Loader 就復(fù)雜得很,那就從早版本看起嘛。
Spring Framework
這是我能找到的最早的 Spring Framework 了,0.9版本才 6.61 M 怕不怕。
看看里面有什么:
編譯后的 jar,可以不管文檔
用到的外部依賴,不怕找不到對應(yīng)依賴的遠(yuǎn)古版本了
樣例
源碼包
下載 spring-framework-0.9.zip,解壓,導(dǎo)入 IDE。
/samples/skeletons/webapp-minimal 這個看名字就知道是最小的骨架樣例(pagedlist 和 petclinic 翻譯一下就知道是結(jié)合一些場景的樣例了,webapp-aop 和 webapp-hibernate 則是引入了一些外部包或者什么東西了)
直奔 /WEB-INF/web.xml,可以看到
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>com.interface21.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
OK,那就看看 com.interface21.web.servlet.DispatcherServlet
順便日常安利 IDEA,可以直接在 web.xml 里點擊跳轉(zhuǎn)定義 : )
可以看到 DispatcherServlet extends FrameworkServlet extends HttpServletBean extends HttpServlet
HttpServlet 是 Java EE 容器的東西了,可以不管了,從 HttpServletBean 開始看起。
多的不說了,0.9 這個古老版本沒有現(xiàn)在的那么多東西,很多設(shè)計模式也很清晰不會套來套取。
祝你好運 : )
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。