`

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中的5种通知和3种加载通知的方式

    在Spring框架中,通知(Advice)是AOP(面向切面编程)的核心概念之一,它定义了在特定连接点(Join Point)上执行的行为。本文将深入探讨Spring中的五种不同类型的的通知以及三种加载通知的方法。 一、五种通知...

    spring通知例子

    在Spring AOP中,通知(Advice)是切面在特定连接点(Join Point)执行的代码块。具体来说: 1. **前置通知**:在目标方法被调用之前执行,用于实现如日志记录、权限检查等操作。在Spring AOP中,我们可以通过实现`...

    Spring通知的配置

    在Spring AOP中,通知(Advice)是一种特定类型的切面,它定义了切面应该执行的行为。Spring支持五种类型的通知: 1. **前置通知**:在目标方法执行前调用。 2. **后置通知**:无论方法是否成功执行,都会在其后...

    Spring.net通知类型,以及通知链

    每个通知可以在其内部调用` Proceed()` 方法来触发下一个通知,或者在环绕通知中不调用`Proceed()`来阻止方法的执行。 - 通知链的执行顺序由`AdviceOrder`属性控制,数值越小,优先级越高,先执行。默认情况下,...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    Spring 中文参考手册

    Spring AOP模块允许开发者定义切面,这些切面可以包含通知(advice),在特定的连接点(join point)执行。通知可以是前置通知、后置通知、异常通知、环绕通知等,提供了灵活的横切关注点实现。 Spring MVC是用于...

    Spring 使用注解来实现通知

    在Spring AOP中,通知主要有五种类型:前置通知(Before)、后置通知(After)、返回后通知(After Returning)、异常后通知(After Throwing)和环绕通知(Around)。 2. **@Before 前置通知** 使用`@Before`注解...

    Spring之AOP注解之引入通知

    本篇文章将深入探讨Spring AOP中的注解引入通知,以及如何利用它们来增强代码的可维护性和模块化。 首先,我们要理解什么是“引入通知”(Introduction Advice)。引入通知是Spring AOP的一种特殊类型的通知,它...

    Spring 环绕通知

    - 如果`proceed()`抛出异常,那么这个异常会被当作环绕通知方法的返回结果,除非在环绕通知中捕获并处理它。 - 环绕通知比其他类型的通知更强大,但也更复杂,使用时需谨慎,避免引入不必要的复杂性。 总结,...

    spring AOP注解的应用1

    在Spring AOP中,我们使用`@Before`注解来定义一个前置通知。这个注解需要与一个方法关联,该方法将在目标方法执行前被调用。例如: ```java @Aspect public class LoggingAspect { @Before("execution(* ...

    第十章 Spring AOP之通知

    在本章中,我们将深入探讨Spring AOP(面向切面编程)中的通知(Advice)。Spring AOP是Spring框架的重要组成部分,它允许我们实现横切关注点,如日志记录、事务管理、性能监控等,而无需侵入核心业务逻辑。通过AOP...

    Spring-AOP(前置/后置/环绕)通知的例子

    在这个例子中,我们将深入探讨Spring AOP中的前置通知、后置通知以及环绕通知的实现方式。 前置通知(Before Advice)在目标方法执行前触发,通常用于执行验证、初始化等操作。在Spring AOP中,我们可以使用`@...

    Spring中的AOP(五)——在Advice方法中获取目标方法的参数

    在Spring AOP中,切面(Aspect)是关注点的模块化,它包含切点(Pointcut)和通知(Advice)。切点定义了应用中哪些方法将被拦截,而通知定义了在这些方法执行时应进行的操作。当我们说“在Advice方法中获取目标方法...

    spring通知

    在Spring框架中,通知(Advice)是AOP(面向切面编程)的核心概念之一,它定义了在方法执行前后或异常发生时进行拦截处理的逻辑。AOP允许程序员定义“切面”(Aspect),这些切面可以封装横切关注点,如日志、事务...

    SpringAop xml方式配置通知

    在Spring中,我们可以通过XML配置文件来定义切面、切入点和通知。以下是一个基本的XML配置示例: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    spring的Aop中的前置通知,后置通知以及环绕通知简单代码

    在环绕通知中,`proceed()`方法用于调用目标方法。你可以根据需要在调用`proceed()`之前和之后添加自定义逻辑。 总结,Spring AOP的前置通知、后置通知和环绕通知为开发者提供了灵活的控制点,使他们能够在不修改...

    Spring2.5-中文参考手册chm

    AOP通过定义切面、通知(advice)和连接点(join point)来实现代码的模块化,使得核心业务逻辑与辅助功能分离,降低了代码的复杂性。 **Spring MVC** Spring MVC是Spring框架的一部分,提供了一种用于构建Web应用...

    Spring 使用AspectJ 实现 AOP之前置通知小例子

    标题提到的"Spring 使用AspectJ 实现 AOP之前置通知小例子",指的是利用AspectJ在Spring中实现AOP的一种特定类型的通知——前置通知(Before advice)。前置通知在目标方法执行之前运行,但不会阻止方法的执行。这种...

    Spring中的AOP

    在Spring中,切面通常由一个或多个通知和一个切点表达式定义。 2. **通知(Advice)**:通知是在特定连接点执行的代码片段,它是切面的实际行为。Spring支持五种不同类型的的通知:前置通知(Before),后置通知...

    spring中AOP中标签加载通知

    这里的“标签加载通知”指的是在Spring AOP中,如何通过使用特定的注解来配置和执行通知(advice)。下面将详细介绍这一概念。 首先,我们需要了解Spring AOP中的通知类型: 1. 前置通知(Before Advice):在目标...

Global site tag (gtag.js) - Google Analytics