`

Spring 中创建通知

阅读更多
这些通知类型,结合方法调用连接点,可以完成90%的AOP工作,对于剩下的不常用的10%,我们可以依赖AspectJ来做。

AspectJ是什么东西?没用过。。。


前置通知  
接口:org.springframework.aop.MethodBeforeAdvice
说明:使用前置通知可以在连接点执行前进行自定义的操作。
不过,Spring里只有一种连接点,即方法调用,所以前置通知事实上就是让你能在方法调用前进行一些操作。前置通知可以访问调用的目标方法,也可以对该方法的参数进行操作,不过它不能影响方法调用本身。

后置通知
接口:org.springframework.aop.AfterReturningAdvice
说明:后置通知中不能修改方法返回值,虽然不能修改返回值,但我们可以抛出一个异常,这样调用方法就只能看到这个异常而不是返回值了。(对于返回值不正确的情况下)

包围通知
接口:org.springframework.aop.MethodInterceptor
说明:Spring中的包围通知根据AOP联盟的方法拦截器标准建模。包围通知可以在目标方法之前和之后运行,我们也可以定义在什么时候调用目标方法。如果需要,我们也可以另写自己的逻辑而完全不调用目标方法。包围通知可以修改方法的返回值

抛出通知
接口:org.springframework.aop.ThrowsAdvice
说明:抛出通知仅当方法调用抛出一个异常的时候才被调用,它在目标方法调用返回时才被执行。抛出通知可以只捕获特定的异常,我们可以访问抛出异常的方法,传入调用的参数以及调用的目标方法。

引入
接口:org.springframework.aop.IntroductionInterceptor
说明:Spring将引入看成一个特殊的拦截器。使用引入拦截器,我们可以定义通知引入的方法的实现

分享到:
评论

相关推荐

    Spring AOP四种创建通知(拦截器)类型

    ### Spring AOP 四种创建通知(拦截器)类型详解 Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要模块,它提供了在应用代码中添加横切关注点的能力,如日志记录、事务管理、权限...

    spring通知例子

    在"spring通知例子"中,开发者可能创建了一个自定义的切面类,这个类包含了处理日志的方法,并使用了`@Aspect`注解声明这是一个切面。然后,针对需要拦截的操作,通过`@Pointcut`定义一个切入点表达式,这个表达式...

    Spring通知的配置

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

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

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

    Spring 使用注解来实现通知

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

    spring简单前置通知、后置处理

    在Spring中,我们可以通过实现`MethodBeforeAdvice`接口来创建一个前置通知。这个接口有一个`before`方法,它会在目标方法执行前被调用。例如: ```java public class MyBeforeAdvice implements ...

    Spring 中文参考手册

    手册中详细介绍了Spring的IoC容器,它是Spring的核心,负责创建对象、管理对象的生命周期以及对象间的依赖关系。IoC容器通过XML配置文件或者基于注解的方式来实现配置,降低了代码的耦合度。 接着,手册会涵盖...

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

    12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. ...

    spring源码注释中文

    Beans 模块提供了依赖注入(Dependency Injection, DI)功能,它是 Spring 框架的核心,允许开发者创建可配置和可管理的对象。Core 模块则包含了 Spring 框架的基本组件,如 Context 模块的父类。 2. **Data Access...

    Spring之AOP注解之引入通知

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

    spring AOP注解的应用1

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

    spring中邮件及定时任务

    在Spring框架中,邮件服务和定时任务是两个非常重要的功能扩展。邮件服务允许开发者向用户发送电子邮件,而定时任务则可以实现程序的自动化执行,如数据同步、报表生成等。以下将详细介绍这两个方面。 首先,我们来...

    Spring示例_Printer_Spring_AOP_Spring_Proxy

    7. 在需要使用`Printer`的地方,通过Spring的依赖注入获取到的是Spring创建的代理对象,而非原始的`ConcretePrinter`实例。 这个示例可以帮助开发者理解如何在实际项目中利用Spring AOP和代理来增强或修饰对象的...

    Spring中文开发手册下载 CHM

    4. **Spring AOP**:提供面向切面编程的支持,可以定义通知(advisors)和切面(aspects),实现代码解耦。 5. **Spring JDBC**和**Spring JPA**:简化了数据库操作,提供了模板类和DAO支持,使数据库访问更加简单...

    Spring2.5-中文参考手册chm

    Spring框架是Java企业级应用开发的核心框架,由Rod Johnson在其著作《Expert One-on-One J2EE Design and Development》中首次提出。Spring2.5版本是该框架的一个重要里程碑,它在2008年发布,带来了许多新特性和...

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

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

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

    Spring AOP通过动态代理机制(JDK Proxy或CGLIB)创建代理对象,拦截方法调用并执行通知。对于非接口实现类,Spring会使用CGLIB库生成子类;对于接口实现类,Spring会使用Java的动态代理。开发过程中,我们可以借助...

    SpringAop xml方式配置通知

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

    Spring 中文教程

    bean是Spring容器中的基本组成单元,它们的创建、配置和管理都由容器负责。 2. 配置bean:可以通过XML、注解或Java配置类定义bean。例如,在"Spring 2.0 中文用户指南"中,你可以学习如何在XML中声明bean及其属性。 ...

    Spring框架开发参考中文手册

    手册中还涵盖了Spring框架的最佳实践,包括如何组织项目结构、如何有效利用注解、如何优化性能等方面,这些都是开发者在实际开发中应遵循的原则。 总之,《Spring框架开发参考中文手册》是Spring初学者和进阶者的...

Global site tag (gtag.js) - Google Analytics