spring aop (service通过继承)导致无法拦截子类方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring aop (service通过继承)导致无法拦截子类方法相关的知识,希望对你有一定的参考价值。

参考技术A 因为项目中使用了mybatis-plus,使得service的实现类都是通过继承来实现的。如图

但是我想拦截的方法,却拦截不到,最后百度解决了,我在这里就总结一下。

1.重写要拦截的方法。

2.aop配置中指定target

3,关于target的解释。

转:https://www.cnblogs.com/bianzy/p/6610974.html

转:http://blog.csdn.net/sunlihuo/article/details/52701548

主要关键点如下:

spring入门-AOP 面向切面编程

AOP 面向切面编程

 

在日常开发中最后将业务逻辑定义在一个专门的service包下,而实现定义在service包下的impl包中,

服务接口以IXXXService形式,而服务实现就是XXXService,这就是规约设计

 

步骤:

1.E:\\Users\\WorkSpaces\\KmwalletApp\\spring\\aop\\test\\HelloWorldService.java 继承(implements)xx接口

2.E:\\Users\\WorkSpaces\\KmwalletApp\\spring\\aop\\test\\IHelloWorldService.java 定义接口方法

3.HelloWorldService 实现接口方法

 

E:\\Users\\WorkSpaces\\KmwalletApp\\spring\\aop\\test\\HelloWorldAspect.java定义切面

 

E:\\Users\\WorkSpaces\\KmwalletApp\\spring\\aop\\test\\AopTest.java 测试运行

坑:

1.xml放置位置

关键词

ClassPathXmlApplicationContext

2.缺少jar

Caused by: java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException

你缺少了 aspectj.jar啊!

看异常很清楚了。

好了,过程就是这样,剩下的就是理解了

以上是关于spring aop (service通过继承)导致无法拦截子类方法的主要内容,如果未能解决你的问题,请参考以下文章

spring入门-AOP 面向切面编程

Spring 的AOP

Spring--AOP

spring-AOP原理

springBoot AOP学习

Spring Boot实战:拦截器与过滤器