總想寫一篇關於springmvc的文章。可是一直不敢下筆。我只是乙個超級初級的spring菜鳥,總共接觸spring不到1個月。spring我真的沒有發言權。但是我確實看到了spring的強大,真的可以帶來軟體工程的春天。
其實spring最亮的並不是mvc,而是強大的ioc(中文意思是控制反轉,又叫di,也即依賴注入)和aop(面向切面程式設計)。ioc和aop不屬於mvc範疇,但是我還是說明一下吧。ioc,控制反轉,和jndi相反,jndi是根據名字去容器中找物件,而ioc則不然,它會把物件注入到容器中,你只要宣告某些規範就可以得到了。aop可以實現某些原本必須在程式內部實現的機制。對於一般的**,你只能在**內部繼續新增**來實現,而且你新增的**又確實對業務無關(日誌等),但是有了aop以後,你完全可以不通過在程式裡面加**,只是同過簡單的介面口可以了。這裡就不細說了。
我曾經諮詢過一位spring高手。那個高手絕對是軟體行業的領頭羊,他說springmvc並不是專案中首選的mvc框架。不是因為不好,而是因為太強大了。以至於很多人都望塵莫及。眾所周知,struts目前仍然是mvc框架的首選,雖然它耦合性不算低吧。struts的action只是乙個簡簡單單的execute方法。其餘的都是自己的發揮,所以,這也導致了不同的**風格。比如封裝,介面,工具包的呼叫等。但是對於乙個中小的專案來說,struts基本上已經足夠了,甚至有的大專案也可以用struts。只不過要統一程式設計規範而已。但是對於spring就不同了,spring的mvc已經把你可以想到的所有的方法統一封裝了。你需要實現哪些功能,只要覆蓋相關的方法即可,而且springmvc會按照一定的順序來執行。對於乙個相對嚴謹的邏輯結構來說,你完全可以覆蓋springmvc中提供的方法來實現。舉個不太恰當的例子。假設人是可以造出來的(我說了例子不恰當,說明問題就可以哈哈)。那麼struts僅僅提供了這個人的頭,告訴你要完成的任務是造出這個人,其他的什麼都沒給,你可以盡情地發揮。對於不同風格的開發者來說,也許最後只能從這個東西有乙個頭來判斷他應該是個人,也許把頭蒙上,就什麼都不是了。但是,也不能這麼說struts的不好。有頭畢竟比沒頭強啊。最起碼可以判斷出應該是個人。如果連頭都沒有給,那... ...10個人造出來的東西你盡可以想象出10種東西。而spring及不一樣了,它給了這個人的骨骼。你的任務就是往這個骨頭架子裡面填肉來完整這個人。不管肉填的怎麼樣,畢竟一眼就可以看出它是個人來。所以,就算10個技術水平造出來的,不管你怎麼發揮,它仍然是個人,只不過是什麼樣的人罷了。言語尖銳,敬請包涵;不過,話糙理不糙。良藥苦口。
我的程式設計學習之旅1
在學校考完試後在學校耍了兩天的遊戲就匆匆的回家了,帶了幾本c程式設計的書 c和指標 programming in c windows 程式設計 打算回家啃一啃。不過,情況幾本和以前一樣,回去先玩了幾天才開始的。最先看的是 windows 程式設計 開始還是和其他書類似,以hello world開始,...
我的docker之旅 1 簡介
1.什麼是docker 2.vm與docker對比 3.docker的執行環境及組成 4.docker應用場景及能做什麼 b.對於開發而言能做啥 1.共享基礎容器 2.共享卷開發容器 3.開發工具容器 4.不同環境下測試容器 5.構建容器 6.安裝容器 7.盒子中預設服務容器 8.基礎設施 粘合劑容...
我的機器學習之旅 1
今天是2018年1月30日。為什麼要學習機器學習呢?這和我的課題緊密相關,我的研究課題是仿魚類側線系統來感知水流環境和避障等。水生生物,尤其是魚類,它們能夠在光線很差甚至是沒有光線的環境中自由的游泳,躲避障礙物甚至覓食,這些行為已經被生物學家證實和側線系統息息相關。下圖展示了魚的側線 魚的表面分布著...