AOP多次代理问题

作者: 多关心老人 | 来源:发表于2018-04-16 15:05 被阅读119次

    AOP多次执行原因分析:

    1. 一个AOP多次执行,原因:产生重复代理了,典型的是和shiro集成。一般配置<aop:aspectj-autoproxy proxy-target-class="true"/>,这样会自动创建一个AspectJAwareAdvisorAutoProxyCreator对象。如果shiro中配置了DefaultAdvisorAutoProxyCreator就会和aop命名空间创建的ProxyCreator产生冲突(参考AopNamespaceHandler),解决方法是去掉shiro的这个配置,shiro运行不受影响。参考https://blog.csdn.net/wangjun5159/article/details/51824171

    2. jdk代理和cglib代理同时存在,解决方法:去掉jdk代理,全部走cglib代理。spring aop全部是代理,不管jdk还是cglib。参考https://stackoverflow.com/questions/1606559/spring-aop-vs-aspectj

    3. 配置文件重复加载,错误配置 <import resource="classpath*:/spring/applicationContext*.xml" />,这个会导致applicatioinContext开头的配置文件会被加载多次,改成
      <import resource="classpath:/spring/applicationContext*.xml" />

    相关文章

      网友评论

        本文标题:AOP多次代理问题

        本文链接:https://www.haomeiwen.com/subject/sclekftx.html