SpringMVC中使用aop注解无效的问题
今天晚上一直在学习这个AOP,测试过程中我 相信大家和我一样 都会出各种各样的
问 题,其中出现与 本标题的一样效果的人士 ,可能会很多。本人用了一个小时在网上查
这 个AOP注解无效 的问题,有很多各样的答案,有讲配置代码的,也有讲SpringAOP的
执 行原理过程的。
各种解决问题的方法看到我花到多,很多都不能符合我的问题所在。当然咯, 他们
能分析结果出来写在博客上, 说明他们还是总结出他们自 己的本身在编程当中遇到的一
些 麻烦所总结出来的经验。因 此,我觉得找原因时,第一,可以先看与原理相关的文
章。第二,由于本人的不一定是适合自己,所以知道原理后一步步地查。第三,如果有
条件 的话,下载一些案例下来,看看别人是怎么写的,对照着代码 ,因为步骤这些是
区别不大的有时,我最后发现我的applicationContext.xml 中<!-- 开启AOP注解扫描 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
是没问题,当我改为这样时
aop<!-- declare AOP-->
<bean id="operateLogger" class="org.tarena.aspect.OperateLogger"/><!--
configure AOP acting on Object(Controller)
--><aop:config>
<aop:aspect ref="operateLogger"><!--
aop前置通知
--><aop:before method="log1" pointcut="within(org.tarena.controller..*)" />
</aop:aspect>
<aop:aspect ref="operateLogger"><!--
aop前置通知
--><aop:around method="log2" pointcut="within(org.tarena.controller..*)" />
</aop:aspect>
<aop:aspect ref="operateLogger"><!--
aop前置通知
--><aop:after-throwing method="log3" throwing="e" pointcut="within(org.tarena.controller..*)" />
</aop:aspect>
</aop:config><!--
以 上方法太过麻烦,建议使用如下:
--><!-- 开启AOP注解扫描, -->
就是不采用AOP自动注解扫描时,就可以,但是效率太低。最后发现
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TMzQDOxYzMwAzMwATM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
之前 的配置是 <context:component-scan base-package="com.tarena.controller" />
如果 是这样的话,自动扫描就困在这个控制层边,我们要把这个自动扫描的功能不仅仅是controller的话,就应该扩大范围,这样我们的DAO,持久层,组件,服务层,控制层,AOP都能被自动的加载。
如果 SpringMVC中使用aop注解无效出现在你身上时,不访check一下AOP注解扫描有没有在你自动扫描注解的范围内,还是那句话,大牛请让道,小生还是菜鸟级别的人物
希望能帮到初学者哦
还是那句话,世界这么大,希望能与你们同在,这样才能缩小大家的距离。