aop配置切面controller层可以使用,service层不能使用问题

最近使用aop,想做一下service层的异常处理,使用的是注解的方式@Aspect

问题在于,我配置后,controller层的切面是正常的,在controller层我做了日志记录。但是在service层切面不执行。检查了很久都没有发现问题,切点与方法都正确,的确很让人郁闷。

检查了很久,意识到,为什么controller层可以用,service不能用呢?是不是配置出了问题?

问题在于我配置aop的位置

<aop:aspectj-autoproxy proxy-target-class="true"/>

配置文件中 对aop的配置,我放在了spring-mvc的配置文件中

在这里插入图片描述

在这个配置文件中,配置了注解包扫描,但是仅仅配置了controller层

<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
<context:component-scan base-package="com.bt.controller"/>
...省略...
 <aop:aspectj-autoproxy proxy-target-class="true"/>

这里没有配置service扫描,service层的扫描配置在 spring-mybatis中,在这里aop扫描不到,aop仅扫描到当前配置文件的包扫描!

令人窒息

最后加上service层的扫描后,aop可以正常使用了

<context:component-scan base-package="com.bt.controller,com.bt.service"/>
...省略...
 <aop:aspectj-autoproxy proxy-target-class="true"/>
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值