Spring中提供了五种类型的Advice。分别为:Interception Around,before,After Returning,Throw,Introduction。下面分别进行讨论
1 Interception Around
这个通知会在JointPoint前后执行。这个也是Spring中最基本的通知类型。要使用该类型必须要实现MethodInterception接口。下面是代码演示。
public class LogInterception implements MethodInterceptor{
System.out.println("begin...");
Object rval = invocation.proceed();
System.out.println("end...");
}
2 Before通知
这个通知只在JointPoint前执行。要使用该通知,必须实现MethodBeforeAdvice接口。
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接口。
public class LogAfterAdvice implements MethodReturningAdvice{
public void afterReturning(Method m,Object[]args,Object target) throws Throwable{
System.out.println("end...");
}
}
4 Throw通知
这个通知只在JointPoint抛出异常时执行。要使用该通知,必须实现ThrowsAdvice接口。
public class LogThrowAdvice implements MethodReturningAdvice{
public void afterThrowing(RemoteException ex) throws Throwable{
System.out.println("Exception...");
}
}
5 Introduction通知
该通知只会在JointPoint调用完毕后执行,要使用该通知,必须实现IntroductionAdvisor接口和InterductionInterceptor接口。