SpringMC工作原理
◆ ◆ ◆ ◆
在小明同學多年的面試生涯中,無論是初級崗位還是高級崗位,這個基本是被面的第一個問題。起初也不知道為啥……然而當我去面試別人的時候,猛然發現也會隨口問了這個問題……因為……我需要時間去細看別人簡歷……這個問題剛好可以磨蹭一段時間……哈哈,開個玩笑。其實從這個問題就可以大致了解面試者情況。回答得好,不代表你有多強,但是回答不好,肯定就是個菜雞。
一般大致會這麼問:
1.介紹一下SpringMVC的工作原理。
2.用戶點擊一個按鈕之後,Spring是怎麼處理的?
SpringMVC工作原理圖
用戶發送給請求到前端控制器DispatcherServlet。DispatcherServlet收到請求調用HandlerMapping處理器映射器處理器映射器找到具體的處理器(註解或者xml配置),生成處理器對象以及處理器攔截器(若有),返回給DispatcherServletDispatcherServlet調用HandlerAdapter處理器適配器HandlerAdapter經過適配調用具體的處理器(Controller)Controller執行完成返回ModelAndViewHandlerAdapter將Controller執行結果ModelAndView返回給DispatcherServletDispatcherServlet將ModelAndView傳給ViewReslover視圖解析器視圖解析器解析後返回具體的ViewDispatcherServlet根據View進行渲染視圖(將模型數據填充到視圖)DispatcherServlet響應用戶
具體組件
◆ ◆ ◆ ◆
DispatcherServlet前端控制器:是整個流程的控制中心,相當於中央處理器,接收請求,響應結果,降低各個組件的耦合度,提高組件的擴展性。HandlerMapping處理器映射器:根據url來尋找Handler,可以用配置文件方式、註解等HandlerAdapter處理器適配器:按照規則去執行HandlerHandler處理器:這個就是我們寫的東西了,就是業務需求View Resolver視圖解析器:根據邏輯視圖名解析成物理視圖名,即具體的頁面地址,再生成view視圖對象,最後對view進行渲染將處理結果通過頁面展示給用戶View視圖:比如jsp,不多解釋
具體面試時使用
◆ ◆ ◆ ◆
原理和流程已經在上面了,面試的時候具體要怎麼做呢,拿出你的紙和筆,嘴裡說著上面的每一個步驟,然後把圖畫出來,畫到具體的組件,就解釋一下組件的作用,這樣解釋清楚這個了,至少幾分鐘就過去了。
一般情況下,能夠把圖全部畫出來,流程都說出來,就會進行下一個問題,面試官不會繼續深究……小明同學幾乎沒遇到過面試官繼續問下去的,大概他們也就懂這些,問下去說不定面試官也會露餡的。
以上過程適用於工作經驗一到三年的java開發,再高級一點,可能要從源碼入手,才能講得很詳細,把面試官懟得心服口服。但是呢,如果要扯源碼,什麼List,HashMap,排序,面試官更願意聽,那也是他們常年面試準備的重點。所以個人覺得對於SpringMVC點到即止,小明對面試者的要求也就是能回答到這樣也就夠了。之後的HashMap之類的會從源碼入手,記得關注後續哦~
順便補充一下MVC:
M:model模型,即業務邏輯,entity+service+dao
V:view視圖,即展示頁面,html,jsp
C:controller控制器,接受請求,調用模型,返回視圖
- end -
祝各位人人都能漲20K!
每個人都是技術大牛!
- TEN END -