为了账号安全,请及时绑定邮箱和手机立即绑定

AOP语句不生效的原因

如果出现AOP不生效(即输出语句没有执行),但是缺也没有报错的原因: 

包是有了,所以不会报错,但是aop的包的版本不匹配,它可能是从仓库拿了个同名但是版本不匹配的包,在Ideal工具中的Maven插件中,把该Module的pom.xml文件移除,然后再添加,它会默认从定义好的Parent标签中版本中找到合适的包下载

上面的操作就是相当于"更新"


https://img1.sycdn.imooc.com//5c7cc36200011d0405870580.jpg

正在回答

1 回答

有可能出现的问题:

1:execution表达式写错了。

2:配置文件或配置类中忘记添加<aop:aspectj-autoproxy/>。

3:如果切入点没有实现接口需要使用cglib动态代理,<aop:aspectj-autoproxy proxy-target-class="true"/>。

4:<context:component-scan 配置的问题导致无法动态代理,具体请参考官方文档。

一般情况下主配置文件要排除@Controller注解,webmvc配置里应该只包含@Controller注解。

如果我们要切入Controller,我们需要在webmvc配置里面加入<aop:aspectj-autoproxy proxy-target-class="true"/>。

如果我们要切入其他如Service,我们需要在主配置里面加入<aop:aspectj-autoproxy proxy-target-class="true"/>。

如果我们既要切入Controller又要切入Service,两个配置都需要加入<aop:aspectj-autoproxy proxy-target-class="true"/>。这个问题比较奇怪,目前还不知道解决方法。


0 回复 有任何疑惑可以回复我~
#1

慕粉4019140 提问者

SpringBoot没有xml文件怎么你怎么在配置中加标签...
2019-03-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Spring Boot进阶之Web进阶
  • 参与学习       104059    人
  • 解答问题       393    个

《2小时学习Spring Boot》之进阶教程,针对Web方面的相关技巧

进入课程

AOP语句不生效的原因

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信