Spring MVC <mvc:annotation-driven/>的作用
一、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
最新文章
- 用rem实现WebApp自适应的优劣分析
- 纯js 判断手势滑动方向
- HTML5 结构性标签 行内语义性标签
- netstat--查看服务器[有效]连接数--统计端口并发数--access.log分析
- Oracle中建立表
- vim molokai配色方案(调过)
- VIM Taglist + ctags
- C++:纯虚函数与抽象类
- sizeof求字节以及与strlen的区别
- soliworks三维机柜布局(一)创建设备型号库
- Android:一个高效的UI才是一个拉风的UI(一)
- 21. 无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务”
- YUV / RGB 格式及快速转换算法
- 手工配置Service的过程中。
- Kali xrdp远程桌面
- jQuery属性操作(四)
- 丢用lamp手动安装apache php mysql
- 多tab点击切换
- svg实现 圆形 点击扩大、消失
- angular js自定义service的简单示例
热门文章
- SQL学习笔记(二)
- 深度学习面试题05:激活函数sigmod、tanh、ReLU、LeakyRelu、Relu6
- ";笨方法";学习CNN图像识别(二)—— tfrecord格式高效读取数据
- linux xlearn安装
- 官方Android Camera2 录像示例--停止录像时崩溃修正
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_17、SpringBootTest单元测试实战
- typeScript模块<;二>;
- Android平台云端打包证书使用说明
- dart里面的时间处理:
- Qt编写自定义控件61-通用移动