如何在从"超级"接口扩展的接口方法上创建方面

El *_*apo 6 java aop spring aspectj

我有一个从基础接口扩展的服务层接口; 我想在我的服务层接口周围创建一个Pointcut,但是在基本接口中定义的一个方法上.

例如....我在我的基本接口中有一个名为"save()"的方法,我将它放在我的基本接口中,因为我的所有"子"接口都将提供"保存"功能.

我想在我的"子"界面上创建一个PointCut,以便在调用"save"时.

我创建了切入点如下:

@Pointcut("execution(* com.xyz.someapp.ChildServiceInterface.save(..))")  
public void childServiceSavePointCut();
Run Code Online (Sandbox Code Playgroud)

然后我围绕上面的切入点创建了一个@Around建议,如下所示:

@Around("childServiceSavePointCut()")
public void doMyAdvice()....
Run Code Online (Sandbox Code Playgroud)

其中"ChildServiceInterface"扩展了另一个定义了"save()"方法的接口.

我的建议永远不会运行...我调试了我的代码,并没有在我的目标服务的顾问列表中看到我的建议.

我离开基地认为这会起作用,还是我不正确地实施它?

Sto*_*ica 16

试试这个切入点.

within(com.xyz.someapp.ChildServiceInterface+) && execution(* save(..))
Run Code Online (Sandbox Code Playgroud)

所述+指示子类型图案.