Как создать аспект метода интерфейса, который расширяется от «супер» интерфейса

У меня есть интерфейс уровня обслуживания, который расширяется от базового интерфейса; Я хотел бы создать Pointcut вокруг своего интерфейса уровня сервиса, но с использованием одного из методов, определенных в базовом интерфейсе.

Например .... У меня есть метод в моем базовом интерфейсе под названием «save ()», Я поместил его в свой базовый интерфейс, поскольку все мои «дочерние» интерфейсы будут обеспечивать функцию «сохранения».

Я хотел бы создать PointCut только на одном из моих «дочерних» интерфейсов, когда вызывается мое «сохранение».

Я создал pointcut следующим образом:

@Pointcut("execution(* com.xyz.someapp.ChildServiceInterface.save(..))")  
public void childServiceSavePointCut();

Затем я создал совет @Around вокруг указанного выше pointcut, как показано ниже:

@Around("childServiceSavePointCut()")
public void doMyAdvice()....

где «ChildServiceInterface» расширяет другой интерфейс, в котором определен метод «save ()».

Мой совет никогда не запускается ... Я отладил свой код и не вижу свой совет в списке советников для моей целевой службы.

Неужели я ошибаюсь, полагая, что это сработает, или я использую его неправильно?

6
задан Stop Harming Monica 17 June 2019 в 09:54
поделиться