AspectJ'围绕'建议 - 您是否必须打电话'继续'?

时间:2011-06-03 16:11:24

标签: java aspectj

这是一个简单的问题,当然有人知道这一点在他们的头顶......

问题

当你在AspectJ中写下'around'建议时,你是否需要调用继续?让我们说你想让一个方法做一些完全不同的事情?你可以离开'继续'或者它会产生错误(强迫你打电话继续但忽略结果)?

实施例

你可以这样做:

String around() : generateCommand() {
    //never call proceed
    return getCommanMyOwnWayWithoutAccessingDatabase();
}

或者你必须这样做:

String around() : generateCommand() {
    String commandInvolvingInvalidDatabaseCall = proceed();
    //completely ignore results from proceed
    return getCommanMyOwnWayWithoutAccessingDatabase();
}

1 个答案:

答案 0 :(得分:8)

仅当您要调用推荐方法的功能时,才调用proceed()或继续(..)。因此,在您的情况下,如果您想要做一些完全不同的事情,请不要打电话。

相关问题