Spring MVC中AOP无效、不起作用,解决方案之一

最近由于项目原因,在Spring+SpringMVC+Mybatis的环境中,增加对controller或是service的日志监控,在网上搜了半天,按照SpringAop的配置出不了结果,在按照网上的各种配置改……,各种头疼中,无意中看到摸个高手写的一段文字突然,感觉很有意思,就这样莫名其妙的解决了。回头看,我去,别人都写好了,我们配置都不会配置,悲哀…,这就是我对各种框架一知半解,甚至不知道的结果。

首先对入口文件,web.xml分析:

Spring MVC中AOP无效、不起作用,解决方案之一_第1张图片

还有一点,我们可以查到,加载这连个配置文件的累分别是:spring(applicationContext),SpringMVC(webApplicationContext)(希望没记错,记错了自己对应修改)

第一步,要明确,我们是在SpringMVC上aop监测,那么所有的报扫描注入都在SpringMVC的配置文件中完成,不要再spring的配置文件中完成,不然在开启代理后,发现还是没有起到任何作用。(当然,aopalliance-1.0.jar,aspectjweaver-1.8.6.jar这两个jar包不可缺少)

第二步,在SpringMVC的配置文件中开启它的代理模式:<aop:aspectj-autoproxy expose-proxy="true"></aop:aspectj-autoproxy>

Spring MVC中AOP无效、不起作用,解决方案之一_第2张图片

第三步,进行aop监测相关方法的类的编写

Spring MVC中AOP无效、不起作用,解决方案之一_第3张图片

最后就是一个小技巧,就是先测pointcut表达式的具体到某一个具体函数,成功后,在用.*来代替,在测,知道成功完成为止!!!!!

希望对大家有帮住,也希望有大牛深入剖析其中的原理。有看到的同学请给我转个链接,谢谢。

你可能感兴趣的:(Spring MVC中AOP无效、不起作用,解决方案之一)