解决Spring AOP (注解方式) Controller 不生效

    很久没写文章了,一来是工作比较乏味,基本上没遇到什么比较有意思的问题,基本上很多问题,网上都能解决~ 二来。。懒了~,最近在职业道路上又遇到了坎,所以提起“笔”,对于平复心情也是一种好的方式~

    好吧,进入今天的主题,Spring AOP 不生效 是怎样一个情况呢?接触SSH也很久了,从仰望到觉得,其实也挺烦恼的~ 自己比较倾向于“零配置”的开发,也许本身对配置觉得无爱吧~ 所以一般都使用注解,各种注解,各种深懂滴赶脚~
   
    正文,关于Spring AOP 实现原理、细节、使用方式等等,大家可以看看我文章末尾的推荐文章。虽然这些和本次话题没多大关系。其实,本次的环境是,使用了Spring MVC的项目,之前没写过AOP,看例子是简单,自己单项目一点问题都没,但应用到Spring MVC的项目的Controller里面,就出现问题了。。。Aspect 不生效

   开始排查问题:
1,检查Aspect Bean的各种注入方式,使用了很多种,问题依旧
2,检查execution语法,貌似没错,因为不生效,问题依旧
3,打印Aspect Bean,发现已成功加载,但依旧不生效
4,修改execution语法,切到Service层方法,是可以的,就是Controller不生效
5,转移纠结点,研究点底层的东西了……后,才知道Spring MVC加载的是WebApplicationContext而不是ApplicationContext,有什么不一样呢?其实不需要在意了,我猜应该差不多的,只是一贯的做法是把东西配置到ApplicationContext.xml,嘿嘿,问题就在这! 应该把schema和加载加到 spring-mvc.xml,然后?一切正常
6,execution切Controller切Service 秒了。。糟糕,还没试切Dao呢…… 呵呵,我去切糕算了 

结束语:接触任何事物,不管熟悉与否,总会被一些不以为然的细节或一知半解的知识影响了对正确道路的认知,然后就得花费更多时间去弄懂其中。框架越来越多,工具越来越厉害,虽然明白百变不离其中,但又有谁能事事打破沙锅问到底呢? 希望能帮助有需要的人,节省时间,提高效率~ 谢谢阅读

比较分析 Spring AOP 和 AspectJ 之间的差别
http://www.oschina.net/translate/comparative_analysis_between_spring_aop_and_aspectj?cmp
AOP 那点事儿
http://my.oschina.net/huangyong/blog/161338
http://my.oschina.net/huangyong/blog/161402
Spring AOP 实现原理
http://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/

猜你喜欢

转载自phoenixfu.iteye.com/blog/2037598