`
gaojian881
  • 浏览: 7192 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表

aj通知函数

MyAspectj中的代码: package com.gaojian.aspectj.test; public aspect MyAspectj {     /*调用某个文件夹下面所有的class*/     //    pointcut callF(): execution(* com.gaojian..*.*(..));         /**      * 1) before : 在目标函数执行前执行      * 2) after :在目标函数执行后执行      * 3) after returning : 在目标函数返回是执行      * 4) after ...
  call 和 execution 的指示符分别为 call ( Method-Signature )、 execution ( Method-Signature ),匹配方法签名的方法或构造函数的执行。 对于 call 来说,调用的连接点位于方法调用点的调用代码处;对于 execution 来说,执行的连接点位于方法执行的位置。也就是说, call 和 execution 的重要区别在于它们传递了哪些类型给 AspectJ 编译器以用来与 aspect 进行链接。 ...
 一:一个典型的aspect类的形式如下: public aspect MyAspectj { //定义连接点函数 pointcut callF(): execution(* f(..)) && cflow(call(* Test.foo(..))); //定义通知函数 before() : callF() { System.out.println(" ...

cflow的使用

cflow(pointcut):表示在执行连接点pointcut所匹配的函数时进行匹配,如下例所示: aj中的代码: package com.gaojian.aspectj.test; public aspect MyAspectj { pointcut callF(): execution(* f(..)) && cflow(call(* com.gaojian.aspectj.test1.*.foo(..))); before() : callF() { System.out.println("before call ...
Global site tag (gtag.js) - Google Analytics