Spring中的Advice(通知)

Spring中提供了五种类型的Advice。分别为:Interception Around,before,After Returning,Throw,Introduction。下面分别进行讨论
1 Interception Around
  这个通知会在JointPoint前后执行。这个也是Spring中最基本的通知类型。要使用该类型必须要实现MethodInterception接口。下面是代码演示。
Java代码

   public class LogInterception implements MethodInterceptor{ 
    System.out.println("begin..."); 
    Object rval = invocation.proceed(); 
   System.out.println("end..."); 
    } 

public class LogInterception implements MethodInterceptor{
System.out.println("begin...");
Object rval = invocation.proceed();
System.out.println("end...");
}



2 Before通知
  这个通知只在JointPoint前执行。要使用该通知,必须实现MethodBeforeAdvice接口。
Java代码

    public class LogBeforeAdvice implements MethodBeforeAdvice{ 
   public void before(Method m,Object[]args,Object target) throws Throwable{ 
   System.out.println("begin..."); 
    } 
   } 

public class LogBeforeAdvice implements MethodBeforeAdvice{
public void before(Method m,Object[]args,Object target) throws Throwable{
System.out.println("begin...");
}
}



3 After Returning通知
  这个通知只在JointPoint后执行。要使用该通知,必须实现MethodReturningAdvice接口。
Java代码

   public class LogAfterAdvice implements MethodReturningAdvice{ 
    public void afterReturning(Method m,Object[]args,Object target) throws Throwable{ 
   System.out.println("end..."); 
    } 
    } 

public class LogAfterAdvice implements MethodReturningAdvice{
public void afterReturning(Method m,Object[]args,Object target) throws Throwable{
System.out.println("end...");
}
}



4 Throw通知
  这个通知只在JointPoint抛出异常时执行。要使用该通知,必须实现ThrowsAdvice接口。
Java代码

   public class LogThrowAdvice implements MethodReturningAdvice{ 
    public void afterThrowing(RemoteException ex) throws Throwable{ 
    System.out.println("Exception..."); 
   } 
    } 

public class LogThrowAdvice implements MethodReturningAdvice{
public void afterThrowing(RemoteException ex) throws Throwable{
System.out.println("Exception...");
}
}



5 Introduction通知
  该通知只会在JointPoint调用完毕后执行,要使用该通知,必须实现IntroductionAdvisor接口和InterductionInterceptor接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值