Spring MVC框架的通俗理解
來自專欄 Spring學習筆記1 人贊了文章
開始學習spring,必然會接觸到mvc這個東西,如果是自學的話,網上好多資料都生澀難懂,費了好半天勁也搞不懂說了啥,做個筆記,把自己理解的spring mvc記錄下來,分享給大家,也方便我回顧複習,有說錯的地方還請批評指正。(如果覺得我說的還是不清楚的同學可以買一本 spring in action看一下,第四版第五章應該比我講的要好,我也只是用我的話將其表述一下而已)
首先呢,spring mvc是什麼?字面意思就是模型—視圖—控制器,這個解釋太抽象,可以這樣理解,他就是一個處理網頁事務的邏輯或者步驟,一個框架,如果要處理網頁上的事務的話,就按照這個步驟來就好,這三個東西分工合作,最終處理好所有的網頁事務。
呃,圖不清楚,我又不想用網上的圖片,只好自己用畫圖板畫了一個。
我們可以想像自己是一個快遞員,在各個地方幫人們寄信,這就好比一個事件穿梭在mvc之中。
①
假設有網友點擊了一個網頁里的內容,或者輸入了一個網址,這就相當於網友和快遞員說:我想訪問一下xx網址,你可以幫我和那邊說一下嗎?於是快遞員就出發了,這就是圖中的步驟①。
②
首先快遞員來到了中心調度室,也就是DispatcherServlet(我翻譯成調度伺服器,英語不好,見諒)。這時候中心調度室看了一下快遞員手裡的網址,交給地址查詢人員(映射處理器),和他說:你給我看一下這個地址是誰管的?於是映射處理器開始找。這就是步驟②。
3.
等到查出是哪個控制器可以處理這個網頁之後,快遞員拿著請求去找控制器,讓控制器來處理這個請求。這是步驟三。
④
控制器處理完這條任務後,會返回一些內容給快遞員,這些內容就是將來會顯示在屏幕上的內容,但是這些內容目前只是一下代號。比如要在屏幕上顯示一個太陽,這個內容就是個名字:太陽。具體怎麼顯示的,控制器並不關心,我們快遞員也不關心。
5.
這時快遞員拿著控制器給他的信息回到中心控制室,中心控制室告訴他去找視圖解析器,於是快遞員又找到視圖解析器,(是不是覺得有點繁瑣 -.- ),視圖解析器看到了快遞員手裡的信息後,為其找到相對應的視圖,告訴快遞員你去xx拿該有的視圖就好了。
⑥
於是快遞員回到中心調度室,把這條消息告訴給中心調度室後,中心調度室才恍然大悟,哦,原來你要的東西是這樣子的啊! 行,你去拿了給那個網友吧,於是快遞員又去視圖那裡拿到相應的視圖,返回交給網友。
最後,網友終於看到了相應的網頁。這就是mvc的作用。
看到這裡,我相信有不少同學會說,這也太麻煩了把,沒錯,是有點麻煩,我也覺得。但是!!!不要忘記了,程序講究的是高內聚,低耦合,盡量讓一段代碼只做一件事,互相之間的干擾最小,不要像多米諾骨牌一樣產生連鎖反應。這樣在後來的維護以及使用中,維護的代價才會低。
推薦閱讀: