Spring 3.1 注释方式实现拦截器无效问题解决办法

来源:互联网 发布:ann神经网络 python 编辑:程序博客网 时间:2024/05/01 09:18
java小弟  9:39:24
你看到我打的话啦吗
风之旋律  9:39:28
哥开会去了
风之旋律  9:39:30
废话
风之旋律  9:39:34
你打的大家都看到了
java小弟  9:39:38
我这没显示
java小弟  9:39:47
我以为我没发出去呢。。
java小弟  9:40:08
困扰我3天的问题,终于在我牛逼的思想下解决了
java小弟  9:40:15
哇哈哈
风之旋律  9:40:33
你还是吧逼还给牛吧.这群经不得你日这么多次
java小弟  9:40:34
不过spring mvc模式,我还不是很熟悉的
dbac  9:41:00
。。。。
dbac  9:41:15
小弟 你是遇到什么问题的
风之旋律  9:41:22
哥去听课去了
java小弟  9:41:40
就是spring 的拦截器怎么都无效
dbac  9:41:46
为什么无效
java小弟  9:41:54
我用的是spring3.1
java小弟  9:42:04
不知道阿,就一直困扰我这个事阿
java小弟  9:42:31
我自己单写个demo,设置<mvc:intercetors>就没有问题
dbac  9:42:56
你不知道还说解决 解决个P啊
java小弟  9:43:05
后来就解决了阿
java小弟  9:43:09
哈哈
java小弟  9:43:24
新工程的东西都使用注释写的
java小弟  9:43:49
3.1中文的东西很少
dbac  9:43:55
你解决个P 都不知道问题
java小弟  9:45:04
我一顿搜英文
java小弟  9:45:19
no work, avaliable
java小弟  9:45:26
我TM太有才了
java小弟  9:47:16
后来发现使用注释<annotation-driven />,会自动加载DefaultAnnotationHandlerMapping和SimpleHandlerMapping。之后在对DefaultAnnotationHandlerMapping进行bean定义,是无效的
java小弟  9:47:28
预加载
java小弟  9:48:08
<mvc:intercetors>好使,是因为他把所有的handlermapping都进行interceptors设置
java小弟  9:49:02
网上找不到可靠的资料,我自己看了看api,官方sample也是用xml自定义bean
java小弟  9:49:40
后来,我查了api,在注释方式定义时加了句 setOrder(0),让他先定义DefaultAnnotationHandlerMapping,
java小弟  9:49:46
问题迎刃而解啦
java小弟  9:49:48
哈哈
java小弟  9:51:04
优先级写在第一位,这样<annotation-driven />的时候,他发现order是0就会把原来的DefaultAnnotationHandlerMapping覆盖掉。
java小弟  9:51:45
但是现在问题是解决了,我还不知道到底order=0原来走的是哪个mapping。还需要研究mvc好好看看。
java小弟  9:51:51
我就嘟囔到这吧。
java小弟  9:52:11
虽然没人理我,不过我乐意把自己的经验和大家分享。
dbac  9:52:14
恩 谢谢
dbac  9:52:18
一直在看 呵呵
java小弟  9:52:22
[鼓掌]
dbac  9:52:33

java小弟  9:54:13

基于注解有一点不好,就是发布的时候,如果是xml自定义,发布的时候改个xml就OK啦。但是注解方式,虽然代码简单,xml看着不会很烦躁,但是一旦修改,需要每次都更改源代码,再发布遍。这个....可能得需要写个自动的东西去发布,要不然,也会很烦躁地。嘻嘻


代码片段:

@Beanpublic DefaultAnnotationHandlerMapping handlerMapping(){DefaultAnnotationHandlerMapping handlerMapping =new DefaultAnnotationHandlerMapping();ControllerInterceptor intercepter=new ControllerInterceptor();handlerMapping.setInterceptors(new Object[]{intercepter});handlerMapping.setOrder(0);return handlerMapping;}