一、mvc:annotation-driven的作用

Spring 3.0.x中使用了mvc:annotation-driven后,默认会帮我们注册默认处理请求,参数和返回值的类,其中最主要的两个类:DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter ,分别为HandlerMapping的实现类和HandlerAdapter的实现类,从3.1.x版本开始对应实现类改为了RequestMappingHandlerMapping和RequestMappingHandlerAdapter。

HandlerMapping的实现类的作用

实现类RequestMappingHandlerMapping,它会处理@RequestMapping 注解,并将其注册到请求映射表中。

HandlerAdapter的实现类的作用

实现类RequestMappingHandlerAdapter,则是处理请求的适配器,确定调用哪个类的哪个方法,并且构造方法参数,返回值。

当配置了mvc:annotation-driven/后,Spring就知道了我们启用注解驱动。然后Spring通过context:component-scan/标签的配置,会自动为我们将扫描到的@Component,@Controller,@Service,@Repository等注解标记的组件注册到工厂中,来处理我们的请求。

二、使用的场景:

如果在web.xml中servlet-mapping的url-pattern设置的是/,而不是如.do。表示将所有的文件,包含静态资源文件都交给spring mvc处理。就需要用到<mvc:annotation-driven />了。如果不加,DispatcherServlet则无法区分请求是资源文件还是mvc的注解,而导致controller的请求报404错误。

<!--注解驱动,以使得访问路径与方法的匹配可以通过注解配置-->
<mvc:annotation-driven/>

参考:

https://www.cnblogs.com/afeng2010/p/10133797.html

最新文章

  1. 用rem实现WebApp自适应的优劣分析
  2. 纯js 判断手势滑动方向
  3. HTML5 结构性标签 行内语义性标签
  4. netstat--查看服务器[有效]连接数--统计端口并发数--access.log分析
  5. Oracle中建立表
  6. vim molokai配色方案(调过)
  7. VIM Taglist + ctags
  8. C++:纯虚函数与抽象类
  9. sizeof求字节以及与strlen的区别
  10. soliworks三维机柜布局(一)创建设备型号库
  11. Android:一个高效的UI才是一个拉风的UI(一)
  12. 21. 无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务”
  13. YUV / RGB 格式及快速转换算法
  14. 手工配置Service的过程中。
  15. Kali xrdp远程桌面
  16. jQuery属性操作(四)
  17. 丢用lamp手动安装apache php mysql
  18. 多tab点击切换
  19. svg实现 圆形 点击扩大、消失
  20. angular js自定义service的简单示例

热门文章

  1. SQL学习笔记(二)
  2. 深度学习面试题05:激活函数sigmod、tanh、ReLU、LeakyRelu、Relu6
  3. &quot;笨方法&quot;学习CNN图像识别(二)—— tfrecord格式高效读取数据
  4. linux xlearn安装
  5. 官方Android Camera2 录像示例--停止录像时崩溃修正
  6. 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_17、SpringBootTest单元测试实战
  7. typeScript模块&lt;二&gt;
  8. Android平台云端打包证书使用说明
  9. dart里面的时间处理:
  10. Qt编写自定义控件61-通用移动