最近使用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="ller"/>
...省略...<aop:aspectj-autoproxy proxy-target-class="true"/>
这里没有配置service扫描,service层的扫描配置在 spring-mybatis中,在这里aop扫描不到,aop仅扫描到当前配置文件的包扫描!
令人窒息
最后加上service层的扫描后,aop可以正常使用了
<context:component-scan base-package="ller,com.bt.service"/>
...省略...<aop:aspectj-autoproxy proxy-target-class="true"/>
本文发布于:2024-02-02 22:36:07,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170688456546892.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |