我有以下切入点:

@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类或其子类中采用任意数量参数的任何方法。为什么不是这样?

最佳答案

表达式中可能缺少点

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

10-07 17:58