Spring MVC 架构分析

2018-11-09  本文已影响0人  林皮皮s

一、Spring MVC 介绍

Spring MVC 属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2(一般老项目使用)等。

Spring web mvc 和 Struts2 都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图:

二、Spring MVC 架构





<!-- 配置controller扫描包,多个包之间用,分隔 -->
<context:component-scan base-package="cn.itcast.springmvc.controller" />

<!-- 配置处理器映射器 -->
<bean  class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

2)、配置处理器适配器
注解式处理器适配器,对标记@ResquestMapping的方法进行适配。
从spring3.1版本开始,废除了AnnotationMethodHandlerAdapter的使用,推荐使用RequestMappingHandlerAdapter完成注解式处理器适配。
springmvc.xml配置文件中配置如下:

<!-- 配置处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

3)、注解驱动(代替上面两个步骤)(重点)
直接配置处理器映射器和处理器适配器比较麻烦,可以使用注解驱动来加载。
SpringMVC使用<mvc:annotation-driven>自动加载RequestMappingHandlerMappingRequestMappingHandlerAdapter
可以在springmvc.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。

<!-- 注解驱动 -->
<mvc:annotation-driven />

    <!-- Example: prefix="/WEB-INF/jsp/", suffix=".jsp", viewname="test" ->
       "/WEB-INF/jsp/test.jsp" -->
    <!-- 配置视图解析器 -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <!-- 配置逻辑视图的前缀 -->
       <property name="prefix" value="/WEB-INF/jsp/" />
       <!-- 配置逻辑视图的后缀 -->
       <property name="suffix" value=".jsp" />
    </bean>

逻辑视图名需要在controller中返回ModelAndView指定,比如逻辑视图名为ItemList,则最终返回的jsp视图地址:"WEB-INF/jsp/itemList.jsp"
最终 jsp 物理地址:前缀+逻辑视图名+后缀

上一篇 下一篇

猜你喜欢

热点阅读