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

gMa*_*ale 4 java aspectj

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

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

你能做这样的事吗

String around() : generateCommand() {
    //never call proceed
    return getCommanMyOwnWayWithoutAccessingDatabase();
}
Run Code Online (Sandbox Code Playgroud)

或者你必须这样做:

String around() : generateCommand() {
    String commandInvolvingInvalidDatabaseCall = proceed();
    //completely ignore results from proceed
    return getCommanMyOwnWayWithoutAccessingDatabase();
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*mes 8

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