У меня есть интерфейс уровня обслуживания, который расширяется от базового интерфейса; Я хотел бы создать Pointcut вокруг своего интерфейса уровня сервиса, но с использованием одного из методов, определенных в базовом интерфейсе.
Например .... У меня есть метод в моем базовом интерфейсе под названием «save ()», Я поместил его в свой базовый интерфейс, поскольку все мои «дочерние» интерфейсы будут обеспечивать функцию «сохранения».
Я хотел бы создать PointCut только на одном из моих «дочерних» интерфейсов, когда вызывается мое «сохранение».
Я создал pointcut следующим образом:
@Pointcut("execution(* com.xyz.someapp.ChildServiceInterface.save(..))")
public void childServiceSavePointCut();
Затем я создал совет @Around вокруг указанного выше pointcut, как показано ниже:
@Around("childServiceSavePointCut()")
public void doMyAdvice()....
где «ChildServiceInterface» расширяет другой интерфейс, в котором определен метод «save ()».
Мой совет никогда не запускается ... Я отладил свой код и не вижу свой совет в списке советников для моей целевой службы.
Неужели я ошибаюсь, полагая, что это сработает, или я использую его неправильно?