AOP在spring的controller里无效的问题
请问spring的controller里怎么使用aop,我自定义了注解和Aspect,注解在controller里面的方法上AOP无效,用在controller以外的类的方法上都有效,pointcut的表达式绝对正确的。网上找了一天说controller不支持AOP,也有的说Spring2.5以后有支持,烦恼啊。请问应该怎么弄,谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
哥们儿,你还在吗?这个问题我也遇到了,解决办法是:
因为Controller已被spring容器内部代理了. 需要对org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter进行Aop才能起作用。
在这篇文章看到的答案,http://blog.csdn.net/lxf9601/article/details/5925211
我也搞了好久,听到你们说我终于记起了,所有servlet.xml可以访问所有contextListener,contextListener不能访问servlet.xml,servlet.xml之间也不可以访问。
什么意思啊,我的现在也是这样,但是我看别人写的根本就没有struts的配置文件。就只用啦@controller可以的。但是为什么我的就不行呢。我的是可以找到大的action但是里面的方法找不到。如我有个DeptAction,里面有个addDept()方法,但是我请求测试发现,deptAction的构造函数得到调用啦,但是返回的错误是找不到addDept这个方法
我现在用的是3.0.5,同样遇到这个问题。我发现如果不写在servlet.xml里面,可以拦截方法,但是无法拦截异常。
我解决了。原来是servlet.xml文件头少了aop的namespace,谢谢楼主。如下:
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
我把AOP配置写到servlet.xml ,启动就报错了,这方法是不有问题?配置如下:
<aop:aspectj-autoproxy />
<bean id="aopTest" class="com.travelsky.pss.abframe.aop.AopTest">
</bean>
报错如下
2011-07-13 16:01:45,468][ERROR][org.springframework.web.context.ContextLoader][Line:220] Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 55 in XML document from ServletContext resource [/WEB-INF/config/servletContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: The prefix "aop" for element "aop:aspectj-autoproxy" is not bound.
context和servlet里都要用Aop的话,都要加????
楼主,我也遇到一样问题,能说明一下吗? 我的邮箱dingyb2005@gmail.com,多谢了
楼主,我也遇到一样问题,能说明一下吗? 我的邮箱dingyb2005@gmail.com,多谢了
今天我也碰到了同样的问题!解决!!!~~~
泡了一天的spring官方论坛终于解决了。 Controller的AOP需要写在servlet.xml里
没人会吗,还是我描述的有问题?