最爱Java

书山有路勤为径,学海无涯苦作舟

《AspectJ Cookbook》读书笔记六: 捕获通知上的连接点

一. 捕获何时执行通知
        
使用adviceexecution()切入点。adviceexecution()切入点的语法如下:
        pointcut <pointcut name>() : adviceexecution();
package com.aspectj;

public aspect AdviceExecutionRecipe 
{
   
/*
       Specifies calling advice whenever advice is executed
   
*/

   pointcut adviceExecutionPointcut() : adviceexecution();

   
// Advice declaration
   before() : adviceExecutionPointcut()
   
{
      System.out.println(
         
"------------------- Aspect Advice Logic --------------------");
      System.out.println(
"In the advice picked by ExecutionRecipe");
      System.out.println(
         
"Signature: "
            
+ thisJoinPoint.getStaticPart().getSignature());
      System.out.println(
         
"Source Line: "
            
+ thisJoinPoint.getStaticPart().getSourceLocation());
      System.out.println(
         
"------------------------------------------------------------");
   }

}


二. 排出作为通知执行结果的连接点
三. 在发出通知时展示原始连接点
        
添加JoinPoint标识符到切入点定义中。
package com.aspectj;

import org.aspectj.lang.JoinPoint;

public aspect AdviceExecutionRecipe 
{
   
/*
       Specifies calling advice whenever advice is executed
   
*/

   pointcut adviceExecutionPointcut(JoinPoint originalJoinPoint) : adviceexecution() 
&& args(originalJoinPoint) && !within(AdviceExecutionRecipe);

   
// Advice declaration
   before(JoinPoint originalJoinPoint) : adviceExecutionPointcut(originalJoinPoint)
   
{
      System.out.println(
         
"------------------- Aspect Advice Logic --------------------");
      System.out.println(
"In the advice picked by AdviceExecutionRecipe");
      System.out.println(
         
"Signature: "
            
+ thisJoinPoint.getStaticPart().getSignature());
      System.out.println(
         
"Source Line: "
            
+ thisJoinPoint.getStaticPart().getSourceLocation());
      
      System.out.println(
            
"Advised Advice's Join Point Signature: "
               
+ originalJoinPoint.getSignature());
      
      System.out.println(
         
"------------------------------------------------------------");
   }

}


 

posted on 2008-08-29 16:09 Brian 阅读(370) 评论(0)  编辑  收藏 所属分类: 《AspectJ Cookbook》读书笔记


只有注册用户登录后才能发表评论。


网站导航:
 

公告


导航

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(4)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜