Spring AOP切入点不适用于抽象方法

时间:2012-02-08 12:26:40

标签: java spring aop 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();
}

我的切入点仅适用于我调用Poller.toString()而不是Poller.doPoll()。我希望它适用于在Poller类或它的子类中接受任意数量参数的任何方法。为什么不是这样?

1 个答案:

答案 0 :(得分:0)

表达式中可能缺少一个点

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