Spring AOP: аннотации к неработающему методу с именем x

Я впервые начинаю работать с АОП.

Мой первый аспект выглядит следующим образом:

@Aspect
public class SyncLoggingAspect {
    private final Logger logger = Logger.getLogger(this.getClass());

    @Before("execution(public * *(..))")
    public void anyPublic() {
        System.out.println("HIT POINTCUT");
    }
}

Он успешно запускается при любом общедоступном вызове метода. Однако, когда я изменил его на это:

@Before("execution(public * doPoll(..))")
public void anyPublic() {
    System.out.println("HIT POINTCUT");
}

Я ожидал, что он будет работать с любым общедоступным методом, называемым "doPoll", но когда вызывается такой метод, как этот, ничего не происходит:

public class GmailContactPoller extends ContactPoller<GoogleUser, ContactPusher<GoogleUser>> {
    Logger logger = Logger.getLogger(this.getClass());

    @Override
    public List<? extends ContactPusher<GoogleUser>> doPoll() throws PollException {
           ...
    }
}

Есть ли что-то, чего мне не хватает в EL синтаксис? Или это как-то связано с иерархией наследования? Метод суперкласса doPoll является абстрактным в абстрактном классе, называемом Poller. Не вызывает ли проблем отсутствие интерфейса?

Редактировать : Я только что заметил, что моя IDE поддерживает инструменты аспекта Spring, и теперь у меня есть следующее предупреждение компилятора с помощью метода:

"Описание Тип местоположения пути к ресурсам" совет, определенный в datasync.aop.aspects.SyncLoggingAspect не был применен [Xlint: adviceDidNotMatch] SyncLoggingAspect.java / DataSync / src / main / datasync / aop / sizes "

10
задан mogronalol 3 February 2012 в 10:19
поделиться