在带有Spring的@Controler方法上使用@BebeFor方面不起作用

发布时间:2022-09-03 / 作者:清心寡欲
本文介绍了在带有spring的@Controler方法上使用@BebeFor方面不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用Spring3的Web应用程序,其中控制器使用@Controller进行注释。控制器的公共方法使用@RequestMap进行注释。这完全可以正常工作。

现在我想在调用控制器中的任何公共方法之前进行检查。我已经使用PointCut表达式创建了一个@Being方面,该表达式选择用@RequestMap注释的所有控制器方法。我已经使用

注册了方面

    

问题是,当我启动应用程序并请求某个控制器处理的某个URL时,我收到以下错误消息:

"处理程序XXX没有适配器:您的处理程序是否实现了类似于控制器的受支持接口?"

这样控制器就不再工作了。有谁有办法解决这个问题吗?

推荐答案

肖恩·帕特里克·弗洛伊德是对的。还有一种方法:从Spring Proxy AOP切换到CGILib。

来自Spring引用:

可以强制使用 CGLIB,在这些(希望是罕见的)情况下 您需要建议一种方法, 未在接口上声明,或者 其中您需要传递一个代理 对象绑定到作为具体类型的方法。

http://static.springsource.org/spring/docs/3.0.x/reference/aop.html#aop-autoproxy-force-CGLIB

强制使用CGLIB代理集 代理目标类的值 [2-0]> 元素设置为True: 要在使用@AspectJ自动代理支持时强制CGLIB代理,请设置 的"Proxy-Target-Class"属性 元素 设置为True:

btw:我建议使用AspectJ或Spring代理CGILib AOP。/

这篇关于在带有Spring的@Controler方法上使用@BebeFor方面不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!



[英文标题]Using @Before aspect on @Controller methods with Spring doesn't work


声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。