Spring MVC 中关于 mvc:annotation-driven

<mvc:annotation-driven/>

会自动注册

RequestMappingHandlerMapping、
RequestMappingHandlerAdapter与ExceptionHandlerExceptionResolver三个benn。

还提供一下支持:

  • 支持使用ConversionService 实例对表单参数进行类型转换
  • 支持使用@NumberFormat annotation、@DateTimeFormat注解完成数据类型的格式化
  • 支持使用@Valid注解对JavaBean实例进行JSR303 验证
  • 支持使用@RequestBody 和 @ResponseBody注解 这个是 Ajax用到的

Spring MVC 中关于 mvc:annotation-driven_第1张图片

可以在jar包自带的帮助文档看,整理出来就是开头讲的那几个bean。

开始的时候,我们的ConversionService是这样的。

Spring MVC 中关于 mvc:annotation-driven_第2张图片

我们去掉conversion-service的配置,debug可以看到。
Spring MVC 中关于 mvc:annotation-driven_第3张图片

这个时候看handlerAdapter。有三个。
Spring MVC 中关于 mvc:annotation-driven_第4张图片

都注掉,看效果。

Spring MVC 中关于 mvc:annotation-driven_第5张图片

Spring MVC 中关于 mvc:annotation-driven_第6张图片

看HandlerAdapter。

Spring MVC 中关于 mvc:annotation-driven_第7张图片

按照这个断点查看查看源码,就基本懂了这儿mvc:annotation-driven基本是不可或缺,所以我们做项目的时候都要把它配上,已经用到了它的三个功能:
1. 配直接跳转的时候,需要这个配置RequestMapping才继续起作用。
2. 配找到静态资源文件的时候,需要这个RequestMapping才继续起作用。
3. 配ConversionService的时候,需要在这里面加上。才能进行自定义类型转换。

你可能感兴趣的:(JavaWeb)