Spring學(xué)習(xí)總結(jié)(2.1)― Spring MVC
來源:程序員人生 發(fā)布時間:2015-05-27 07:58:45 閱讀次數(shù):2735次
簡介
Spring MVC是MVC模式在UI中的使用,固然Spring MVC只是其中的1種。這個模式的特點是:分離了模型、視圖、控制器3種角色。將業(yè)務(wù)處理從UI設(shè)計中獨立出來,分裝到模型和控制器設(shè)計中去,使得他們相互之間解耦。這樣的話,它們就能夠獨立擴(kuò)大。
流程
- 客戶端要求提交到DispatcherServlet
- 由DispatcherServlet控制器查詢1個或多個HandlerMapping,找到處理要求的Controller
- DispatcherServlet將要求提交到Controller
- Controller調(diào)用業(yè)務(wù)邏輯處理后,返回ModelAndView
- DispatcherServlet查詢1個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖
- 視圖負(fù)責(zé)將結(jié)果顯示到客戶端
WEB與Spring MVC的關(guān)系
Spring MVC也是Spring框架的1部份,所以Spring MVC也要基于IOC容器來使用。而Spring IOC容器是1個獨立的模塊,它其實不能直接的在web容器里使用。所以需要設(shè)計1個啟動和初始化IOC容器的進(jìn)程。看以下配置文件:
<span style="font-family:FangSong_GB2312;font-size:18px;">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml,classpath:config/applicationContext-common.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet></span>
這兩個配置項listener配置了1個監(jiān)聽器,作用是監(jiān)聽WEB容器的啟動,然后觸發(fā)Spring IOC加載到WEB 容器中來。Servlet配置項配置的是Spring MVC的主分發(fā)器。其中參數(shù)指定了配置的bean的xml文件路徑。這里的listener和DispatcherServlet為WEB Context訪問Spring MVC提供了入口。
上下文在WEB容器中的啟動
其實,在WEB中啟動Spring MVC就是創(chuàng)建上下文關(guān)系。首先DispatcherServlet攔截的Http要求時需要Spring MVC為其提供相應(yīng)的處理類。所有的配置好的需要Spring MVC管理的類就構(gòu)成了1個系統(tǒng)的上下文關(guān)系。也就是說,所謂的上下文可以簡單的理解為Bean的集合吧。
上圖為上下午關(guān)系的創(chuàng)建進(jìn)程,根上下文是由WEB Context創(chuàng)建的,余下的子上下文關(guān)系都是由ContextLoader來創(chuàng)建的。這樣Spring MVC在WEB Context中就搭建起來了。
總結(jié):這篇博客講了Spring MVC的基本流程和它與WEB 之間的關(guān)系。這些知識內(nèi)容有助于對使用Spring MVC的理解。同時也是為了更好的使用吧。下篇再見!
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈