天天看点

SpringMVC中使用aop注解无效的问题

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自动注解扫描时,就可以,但是效率太低。最后发现

SpringMVC中使用aop注解无效的问题

之前 的配置是 <context:component-scan base-package="com.tarena.controller" />

如果 是这样的话,自动扫描就困在这个控制层边,我们要把这个自动扫描的功能不仅仅是controller的话,就应该扩大范围,这样我们的DAO,持久层,组件,服务层,控制层,AOP都能被自动的加载。

如果 SpringMVC中使用aop注解无效出现在你身上时,不访check一下AOP注解扫描有没有在你自动扫描注解的范围内,还是那句话,大牛请让道,小生还是菜鸟级别的人物

SpringMVC中使用aop注解无效的问题

希望能帮到初学者哦

还是那句话,世界这么大,希望能与你们同在,这样才能缩小大家的距离。