Spring MVC使用篇(三)—— 处理器映射器和适配器

1、重温请求流程

  在Spring MVC的架构环境下,用户在Web端触发了请求,请求会先通过前端控制器(DispatcherServlet),然后前端控制器(DispatcherServlet)会请求处理器映射器(HandlerMapping)寻找处理该请求的Handler(或带拦截器的Handler链),接着前端控制器(DispatcherServlet)会根据处理器映射器(HandlerMapping)传来的Handler(或带拦截器的Handler链)与配置的处理器适配器(HandlerAdapter)进行匹配,找到可以处理此Handler(或带拦截器的Handler链)类型的处理器适配器(HandlerAdapter),进而该处理器适配器(HandlerAdapter)调用自己的handler方法,利用Java的反射机制去执行具体的Controller方法并获得ModelAndView视图对象。

2、Spring MVC默认的注解配置

2.1 在Spring 3.1之前

  Spring MVC默认加载的注解的处理器映射器和处理器适配器分别为DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter。它们位于Spring MVC的核心jar包的org.springframework.web.servlet.mvc.annotation包下。

2.2 在Spring 3.1之后

  DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter已经被列为国企的映射器和适配器,Spring MVC增加了新的基于注解的处理器映射器和适配器,分别为RequestMappingHandlerMapping和RequestMappingHandlerAdapter,它们同样位于Spring MVC的核心jar包的org.springframework.web.servlet.mvc.method.annotation包下。

3、配置注解的处理器映射器和适配器方式

3.1 第一种配置方式

  第一种配置方式和费注解的处理器适配器和映射器的配置一样,声明相关的bean即实现即可,配置如下:

<!--注解映射器-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
    <!--注解适配器-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

3.2 第二种配置方式

  第二种配置方式,使用“<mvc:annotation-driven />”标签来配置。annotation-driven标签是一种简写模式,使用默认配置代替了一般的手动配置。annotation-driven标签会自动注册处理器映射器和处理器适配器(Spring 3.1 至 Spring 4 皆使用RequestMappingHandlerMapping和RequestMappingHandlerAdapter)。并且除此之外还提供了数据绑定支持,例如@NumberFormatannotation支持、@DateTimeFormat支持、@Valid支持、读写XML的支持(JAXB)和读写JSON的支持(Jackson)。在实际开发中,为了提高开发效率,使用最多的就是基于annotation-driven标签的配置。annotation-driven标签的配置十分简单,如下所示。

<!--配置基于注解的处理器适配器与处理器映射器-->
    <mvc:annotation-driven/>

4、让注解的处理器映射器和适配器找到注解的Handler

  为了让注解的处理器映射器和适配器找到注解的Handler,有两种配置方式。

  • 在springmvc.xml中声明相关的bean信息即可;
    <bean class=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>