圖解 SpringMVC 五大組件
以下內(nèi)容來(lái)自公眾號(hào)逆鋒起筆,關(guān)注每日干貨及時(shí)送達(dá)
來(lái)源:blog.csdn.net/wsdfym/article/details/91354997
是一個(gè)MVC架構(gòu),用來(lái)簡(jiǎn)化基于MVC架構(gòu)的Web應(yīng)用開發(fā)。SpringMVC最重要的就是五大組件
DispatcherServlet HandleMapping Controller ModeAndView ViewResolver
下面一一介紹這五大控件
1.DispatcherServlet
這個(gè)控件是SpringMVC 最核心的一個(gè)控件,顧名思義其實(shí)他就是一個(gè)Servlet,是Spring寫好的一個(gè)Servlet
2.HandleMapping
控件標(biāo)明了路徑與Controller的對(duì)應(yīng)關(guān)系,不同的路徑訪問不同的Controller
3. Controller
用來(lái)處理業(yè)務(wù)邏輯的Java類
4. ModeAndView
Mode用來(lái)綁定處理后所得的數(shù)據(jù),View視圖名
5. ViewResolver
視圖解析器明確了視圖名與視圖對(duì)象的關(guān)系,是調(diào)用demo.jsp還是調(diào)用demo.html,以及明確視圖的位置
五大組件的關(guān)系

五大組件的位置關(guān)系
DispatcherServlet屬于servlet所以位于Tomcat等服務(wù)器容器中,而、HandleMapping ViewResolver 屬于Spring所以位于SpringMVC配置文件中,Contrlloer以及ModeView位于src文件中處理具體邏輯業(yè)務(wù)

下面說說五大組件的使用以及配置
配置DispatcherServlet
DispatcherServlet屬于Servlet所以配置在web.xml文件中。init-param為該Servlet啟動(dòng)所需參數(shù)。DispatcherServlet會(huì)讀取初始化contextConfigLocation參數(shù)里面的值從而獲取spring的配置位置,然后自啟動(dòng)容器
<servlet>
?????<servlet-name>springMvcservlet-name>
?????<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
?????<init-param>
??????????<param-name>contextConfigLocationparam-name>
???????????<param-value>classpath:springmvc.xmlparam-value>
??????init-param>
??????<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
????<servlet-name>springMvcservlet-name>
????<url-pattern>*.formurl-pattern>
servlet-mapping>

2. HandleMapping
mvc:annotation-driven 配置mvc注解掃描 可以用注解@RequestMapping(“url”)加在方法上簡(jiǎn)化配置prop標(biāo)明路徑和XXController的關(guān)系
<mvc:annotation-driven/>
<bean?id="loginController"?class="包名+類名"/>
<bean?class="org.springframework.web.servlrt.handler.SimpleUrlHandlerMapping">
????<property?name="mappings">
????????<props>
????????????<prop?key="/login.form">loginControllerprop>
????????props>
????property>
bean>
3.Controller
處理getData.form該路徑的業(yè)務(wù)邏輯
@Controller
public?class?DataController?{
????@RequestMapping("getData.form")
????public?ModeAndView?hello(String?stationId)?{
????????System.out.println("hello");
????????return?new?ModeAndView("hello")
????}
}
4. ModeAndView
兩種ModeAndView的構(gòu)造方法,第一個(gè)視圖名,第二個(gè)需要綁定的數(shù)據(jù)
ModeAndView(String?viewName)
ModeAndView(String?viewName?,Map?data)
5. ViewResolver
前綴+視圖名+后綴=映射到頁(yè)面
<bean?class="org.springframework.web.servlet.view.InternalResour????ceViewResolver">
????<property?name="prefix"?value="/WEB-INF/"/>
????<property?name="suffix"?value=".html">property>
bean>
SpringMVC的部分知識(shí)圖:

點(diǎn)擊放大
逆鋒起筆專注于程序員圈子,你不但可以學(xué)習(xí)到java、python等主流技術(shù)干貨和N多個(gè)源碼分享,還可以第一時(shí)間獲悉最新技術(shù)動(dòng)態(tài)、內(nèi)測(cè)資格、BAT大佬的經(jīng)驗(yàn)、精品視頻教程、副業(yè)賺錢經(jīng)驗(yàn),微信搜索readdot關(guān)注!
這 7 個(gè) Spring Boot 項(xiàng)目夠經(jīng)典!

