Spring AOP pointcut не применяется к абстрактным методам - PullRequest
2 голосов
/ 08 февраля 2012

У меня есть следующий pointcut:

@Before(value="execution(* datasync.polling.Poller+.*(..))")
public void beforePoll() {
    logger.info("DOING THIS");
}

И следующий абстрактный класс:

package datasync.polling;
import datasync.principle;

public abstract class Poller<P extends Principle> {
    protected P principle;

    public Poller(P principle) {
        this.principle = principle;
    }

    @Override
    public String toString() {
        return "Poller for " + principle.toString();
    }

    public abstract P doPoll();
}

Мой pointcut применяется только когда я вызываю Poller.toString (), а не Poller.doPoll().Я ожидаю, что он будет применяться к любому методу, который принимает любое количество аргументов в классе Poller или его подклассах.Почему это не так?

1 Ответ

0 голосов
/ 30 января 2018

Вероятно, точка отсутствует в выражении

@Before(value="execution(* datasync.polling.Poller+.*(..))")
@Before(value="execution(* datasync.polling.Poller+..*(..))")
                                                   ^
...