文档章节

Interceptor 与 <mvc:annotation-driven /> 的冲突

老翻车司机
 老翻车司机
发布于 2014/11/25 23:31
字数 296
阅读 1371
收藏 6

第一次写,希望大神们呵呵即可。


最近在学习拦截器,没想到刚开始就碰到难题了。我明明配置好了拦截器,但是丝毫没有起作用,百思不得其解。

这是起初的配置:

<context:component-scan base-package="sin.cara.controller" />
    
     <mvc:annotation-driven />  

     <bean
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="interceptors">
            <list>
                <ref bean="myInterceptor"/>
            </list>
        </property>
    </bean> 

     <bean id="myInterceptor" class="sin.cara.interceptors.MyInterceptors"/>    

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views" />
        <property name="suffix" value=".jsp" />
    </bean>

这是修改后的配置:

<context:component-scan base-package="sin.cara.controller" />

    
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
   <property name="interceptors"> <list> <ref bean="myInterceptor" /> </list> 
   </property> 
</bean> 
<bean id="myInterceptor" class="sin.cara.interceptors.MyInterceptors"> 
</bean> 

 <bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

细心的看官也许发现了不同之处,是的,少了

<mvc:annotation-driven />

居然可以成功拦截。

原因是因为

<mvc:annotation-driven />

会自动为我们注册DefaultAnnotationHandlerMapping 与AnnotationMethodHandlerAdapter 这两个bean。所以第一种配置无法注入  interceptors属性,就不能指定拦截器。

当使用这种配置时

<mvc:interceptors> 
    <bean class="sin.cara.interceptors.MyInterceptors" /> 
</mvc:interceptors>

使不使用

<mvc:annotation-driven />

都没关系,都会成功拦截。还没弄明白这是为什么,希望OSCER们能帮我我解答。

© 著作权归作者所有

老翻车司机
粉丝 8
博文 5
码字总数 1171
作品 0
深圳
程序员
私信 提问
加载中

评论(3)

l
lijunwyf@163.com
你可以参考一下 http://elf8848.iteye.com/blog/875830
麦壳原野
麦壳原野
<mvc:annotation-driven/>的作用是自动注册一些bean,比如处理Controller,RequestMapping,PathVariable等注解的bean,作用仅此而已。<mvc:intercepter>中的没有指定拦截范围时会拦截所有spring处理的请求,换句话说<mvc:intercepter>跟<mvc:annotation-driven>没有关系,后者只是启用注解模式。
yysf
yysf
http://feitianbenyue.iteye.com/blog/1271181
【Diary Report 2017-12-25】关于VMware WorkStation的烦心事

diary_report.jpg Interesting things 有2天没有写diary report了,因为这几天都在火车上颠簸。上个星期五晚上9点的火车从广州到武汉,星期日在学校考试,然后晚上9点的火车又匆忙的赶回广州...

cmazxiaoma
2017/12/25
0
0
不起作用的一个解决方法

拦截器配置1: <mvc:annotation-driven /> 在另外的文件(非xxx-servlet.xml)中配置 mvc:interceptors mvc:interceptor <!-- 匹配的是url路径, 如果不配置或/,将拦截所有的Controller --> ......

巴顿
2016/03/15
1K
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
2018/08/17
7
0
Spring MVC一些配置信息解析

springMVC框架请求响应步骤 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找Handler 可以根据xml配置、注解进行查找 第三步:处理器映射器Han...

开源oschina
2015/10/02
1K
1
spring vmc3.1.1 上,通过AnnotationMethodHandlerAdap...

spring vmc3.1.1 下,通过AnnotationMethodHandlerAdapter配置webBindingInitializer失效解决方案 问题: spring vmc3.1.1 下,通过AnnotationMethodHandlerAdapter配置webBindingInitializ......

爪哇小贩
2013/03/23
812
2

没有更多内容

加载失败,请刷新页面

加载更多

新建作业20191011121223

2.编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound,Sally shouted,"By the Great Pumpkin,what was that!" #include<stdio.h>int main(){printf("\a");......

电子197朱妍
31分钟前
3
0
家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
52分钟前
7
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
53分钟前
7
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
55分钟前
10
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
59分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部