帮助切入点 - AspectJ

时间:2011-06-19 12:19:10

标签: logging aop aspectj

如果有人能向我解释,我只会对切入点中的参数感到有点困惑...

import Java.util.logging.*;
import org.aspect j.lang.*;

public aspect TraceAspect {
private Logger _logger = Logger.getLogger("trace");

TraceAspectV2() {
      _logger.setLevel(Level.ALL);
}

pointcut traceMethods()
(execution(* Account.*(..)) || execution(*.new(..)))    && !within(TraceAspect);

before () : traceMethods() {
     if (_logger.isLoggable(Level.INFO)) {
          Signature sig = thisJoinPointStaticPart.getSignature();
          _logger.logp(Level.INFO, sig.getOeclaringType().getName(),sig.getNameO , "Entering");
          }
     )
)

方面中的切入点定义何时应生成跟踪消息。描述一下 你自己的话,当程序的哪些点,日志信息“进入” 将生成。

PS:这是来自过去的试卷......而我正试图了解记录器何时产生输入....

2 个答案:

答案 0 :(得分:2)

无论返回值,名称或参数如何,每次执行类帐户中的方法(execution(* Account.*(..)))之前都会输入

输入; execution(*.new(..)) && Iwithin(TraceAspect)匹配不在TraceAspect中的每个构造函数(应该是!within(…)而不是Iwithin - 请参阅aspectJ cookbook on google books,OCR将感叹号!识别为大写字母i { {1}})。

答案 1 :(得分:0)

在匹配执行切入点签名的方法之前生成“输入”消息。看起来建议所有对Account类的新调用。