首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring中的Advice(通报)

2012-09-20 
Spring中的Advice(通知)Spring中提供了五种类型的Advice。分别为:Interception Around,before,After Return

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

热点排行