springmvc进阶(3):mvc:annotation-driven和mvc:default-servlet-handler在springmvc中的作用

在springmvc.xml中,经常会配置<mvc:annotation-driven/><mvc:default-servlet-handler/>下面来看下这两个配置有什么作用吧:

1、两者都不配置
这里写图片描述
如果两个都没有配置,springmvc容器初始化时会默认读取DispatcherServlet.properties中的默认参数加载HandlerAdapter, HandlerExceptionResolver和HandlerMapping,还有其他很多默认加载项,这里就不一一列举。重点看这三项:

org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
    org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

org.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\
    org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

org.springframework.web.servlet.HandlerExceptionResolver=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver,\
    org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,\
    org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver

2、仅配置<mvc:default-servlet-handler/>
这里写图片描述

可见仅仅配置了<mvc:default-servlet-handler/>时,框架主要注入了SimpleUrlHandlerMapping,并去掉了AnnotationMethodHandlerAdapter 和DefaultAnnotationHandlerMapping。
为什么这样?因为这里用不上AnnotationMethodHandlerAdapter 和DefaultAnnotationHandlerMapping了!当只配置<mvc:default-servlet-handler/>时,所有请求都交给默认的servlet进行处理了,dispatchServlet也就无法发挥相应的功能了,所有这里对于处理器请求的解析和处理也就不需要了。

3、仅配置<mvc:annotation-driven/>
这里写图片描述

<mvc:annotation-driven/>的作用:

  • 注入RequestMappingHandlerAdapter替代AnnotationMethodHandlerAdapter
  • 注入ExceptionHandlerExceptionResolver替代AnnotationMethodHandlerExceptionResolver
  • 注入RequestMappingHandlerMapping替代DefaultAnnotationHandlerMapping

4、两者都配置
这里写图片描述

一般我们会两个同时配置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值