【问题标题】:AspectJ 'around' advice - do you have to call 'proceed'?AspectJ 'around' 建议 - 你必须调用 'proceed' 吗?
【发布时间】:2011-06-03 16:11:24
【问题描述】:

这是一个简单的问题,肯定有人知道这一点...

问题

当您在 AspectJ 中编写“环绕”建议时,您是否必须调用继续?假设你想让一个方法做一些完全不同的事情?你能把'proceed'去掉还是会产生错误(迫使你调用proceed但忽略结果)?

示例

你可以这样做吗:

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

或者你必须这样做:

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

【问题讨论】:

    标签: java aspectj


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多