【问题标题】:Pointcut for a method injected with AspectJ用 AspectJ 注入的方法的切入点
【发布时间】:2014-12-21 13:25:12
【问题描述】:

如何为使用 ApsectJ 注入的方法定义切入点?

我已经注入了如下方法,它可以正常工作:

public void com.moeActivity.onBackPressed() {
    super.onBackPressed();
    Log.d("ATAG", "BACKK");
}

现在我正在尝试定义一个切入点来检测注入方法的执行但它不成功,我尝试了以下方法:

pointcut eventActivity(): 
  execution(* com.moeActivity.onBackPressed(..));

任何帮助将不胜感激

谢谢!

【问题讨论】:

  • 真正的问题是什么?你想达到什么目标?你有一个方法和一个切入点。可能您还想定义一个建议,该建议实际上在所有匹配连接点处注入一些功能,不是吗?顺便说一句,你读过 AspectJ 教程吗?

标签: java aspectj aspect


【解决方案1】:

你需要一个通知体来运行注入的方法(例如Log.d("ATAG", "BACKK")可能),如下所示:

public aspect LoggingAspect{
 after() : eventActivity() {
   Log.d("ATAG", "BACKK");
 } 
}

这样做,after 通知与名为 eventActivity 的命名切入点连接,并在super.onBackPressed() 之后运行横切操作(即Log.d("ATAG", "BACKK"))。正如@kriegaex 所说,您需要阅读一些 AspectJ 示例才能有效地理解它。

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 2013-02-12
    • 2018-05-08
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多