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接口。

你可能感兴趣的:(spring)