如果有人能向我解释,我只会对切入点中的参数感到有点困惑...
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:这是来自过去的试卷......而我正试图了解记录器何时产生输入....
答案 0 :(得分:2)
execution(* Account.*(..))
)之前都会输入输入; execution(*.new(..)) && Iwithin(TraceAspect)
匹配不在TraceAspect中的每个构造函数(应该是!within(…)
而不是Iwithin
- 请参阅aspectJ cookbook on google books,OCR将感叹号!
识别为大写字母i { {1}})。
答案 1 :(得分:0)
在匹配执行切入点签名的方法之前生成“输入”消息。看起来建议所有对Account类的新调用。