`

5.5 Spring的通知(Advice)

 
阅读更多

5.5  Spring的通知(Advice)

Spring提供了5种Advice类型:Interception Around、Before、After Returning、Throw和Introduction。它们分别在以下情况下被调用:在JointPoint前后、JointPoint前、JointPoint后、JointPoint抛出异常时、JointPoint调用完毕后。下面来进行更详细的讲解。

5.5.1  Interception Around通知

Interception Around通知会在JointPoint的前后执行,前面示例中的LogProxy就是一个Interception Around通知,它在考勤审核程序的前后都执行了。Spring中最基本的通知类型便是Interception Around通知。实现Interception Around通知的类需要实现接口MethodInterceptor,示例代码如下:

public class LogInterceptor implements MethodInterceptor {

    public Object invoke(MethodInvocation invocation) throws Throwable {

        System.out.println(" 开始审核数据...");

        Object rval = invocation.proceed();

        System.out.println(" 审核数据结束…");

        return rval;

    }

}

5.5.2  Before通知

Before通知只在JointPoint前执行,实现Before通知的类需要实现接口MethodBeforeAdvice,示例代码如下:

public class LogBeforeAdvice implements MethodBeforeAdvice {

    public void before(Method m, Object[] args, Object target) throws Throwable {

        System.out.println(" 开始审核数据...");

    }

}

5.5.3  After Returning通知

After Returning通知只在JointPoint后执行,实现After Returning通知的类需要实现接口AfterReturningAdvice,示例代码如下:

public class LogAfterAdvice implements AfterReturningAdvice {

    public void afterReturning (Method m, Object[] args, Object target) throws Throwable {

        System.out.println(" 审核数据结束...");

    }

}

5.5.4  Throw通知

Throw通知只在JointPoint抛出异常时执行,实现Throw通知的类需要实现接口ThrowsAdvice,示例代码如下:

public class LogThrowAdvice implements ThrowsAdvice {

    public void afterThrowing (RemoteException ex) throws Throwable {

        System.out.println(" 审核数据抛出异常,请检查..." + ex);

    }

}

5.5.5  Introduction通知

Introduction通知只在JointPoint调用完毕后执行,实现Introduction通知的类需要实现接口IntroductionAdvisor和接口IntroductionInterceptor。

前面所讲的知识点,更多的是理论,下面的章节将会讲述更多的实例,来帮助读者更好地理解上面的理论知识。

 

5.6  Spring的Advisor

前面讲过,Advisor是Pointcut和Advice的配置器,它是将Advice注入程序中Pointcut位置的代码。org.springframework.aop.support.DefaultPointcutAdvisor是最通用的Advisor类。在Spring中,主要通过XML的方式来配置Pointcut和Advice。

分享到:
评论

相关推荐

    ce5.5 中文版 ce5.5 中文版 ce5.5 中文版

    《CE5.5中文版:深入理解与游戏内存修改指南》 CE5.5中文版,全称为 Cheat Engine 5.5,是一款广泛应用于游戏修改的开源工具,它以其强大的内存搜索和修改功能,深受玩家和游戏开发者的喜爱。这款软件能够帮助用户...

    spring-security-core-5.5.2-API文档-中文版.zip

    赠送jar包:spring-security-core-5.5.2.jar; 赠送原API文档:spring-security-core-5.5.2-javadoc.jar; 赠送源代码:spring-security-core-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-core-...

    esxi 5.5 vsphere 5.5

    esxi 5.5 vsphere 5.5算号器

    ccs5.5详细安装过程_ccs5.5安装_ccs5.5安装步骤_ccs5.5_ccs5.5菜单栏_ccs5.5菜单栏_

    《CCS5.5详细安装过程》 CCS(Code Composer Studio)是TI(Texas Instruments)公司推出的一款集成开发环境,主要用于开发基于TI的微控制器和数字信号处理器的应用。本文将详细阐述CCS5.5的安装过程,帮助用户顺利...

    源码AM5.5服务端

    AM5.5服务端和客户AM5.5服务AM5.5服务端和客户端端和客户端端AM5.5服务端和客户AM5.5服务AM5.5服务端和客户端端和客户端端AM5.5服务端和客户AM5.5服务AM5.5服务端和客户端端和客户端端AM5.5服务端和客户AM5.5服务AM...

    CCS5.5的详细操作说明 - 副本.zip_DSP28335、CCS5.5_ccs 5.4调试_ccs5.5_ccs5.5ds

    **CCS5.5的详细操作说明** **一、CCS5.5简介** CCS(Code Composer Studio)是TI(Texas Instruments)公司为德州仪器的DSP(Digital Signal Processor)和微控制器提供的一款集成开发环境。CCS5.5作为其第五个主要...

    spring-security-crypto-5.5.2-API文档-中文版.zip

    赠送jar包:spring-security-crypto-5.5.2.jar; 赠送原API文档:spring-security-crypto-5.5.2-javadoc.jar; 赠送源代码:spring-security-crypto-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-...

    精雕5.5.1048

    正版北京精雕5.5.1048

    vmware esxi 5.5 注册机

    vmware esxi 5.5 注册机 包括其他版本,很实用

    JDPaint 5.5 转NC

    《JDPaint 5.5 转NC:掌握精雕软件的核心技术》 在数字化制造和精密雕刻领域,JDPaint 5.5是一款备受赞誉的软件,它以其强大的3D建模和NC(Numerical Control,数字控制)转换功能而著称。本文将深入探讨JDPaint ...

    ccs5.5+SEED-XDS510Plus驱动_CCS5.5+XDS510Plus_ccs5.5_seed_

    《CCS5.5与XDS510Plus驱动详解:构建高效嵌入式开发环境》 CCS(Code Composer Studio)是TI(Texas Instruments)公司推出的一款强大的集成开发环境,主要用于开发基于TI的微处理器和微控制器的嵌入式系统。在本...

    mysql 5.5版本的驱动

    MySQL 5.5版本的驱动是Java应用程序与MySQL数据库交互的关键组件,主要通过JDBC(Java Database Connectivity)接口实现。JDBC是Java平台上的标准,它允许Java开发者使用SQL语句来访问和处理数据库。MySQL的JDBC驱动...

    vmclient5.5

    【vmclient5.5】是VMware公司推出的虚拟机管理工具,主要用于远程管理和控制VMware vSphere环境中的虚拟机。这个版本的vmclient适用于Windows 7和Windows 8操作系统,为用户提供了便捷的图形化界面,使用户能够在...

    ccs5.5使用教程

    本教程也适应于CCS5.0...CCS5.5。 CCS5.5的详细操作说明 本文是对CCS5.5一步一步地操作如何建立工程、配置仿真器、连接仿真器、烧录RAM与调试、烧录flash,以及如何打开一个已有的CCS5.5工程。 该文档以TMS320F28035...

    SQL any where 5.5

    《SQL Anywhere 5.5:移动数据库管理的里程碑》 SQL Anywhere 5.5,作为一款由Sybase公司推出的强大数据库管理系统,是上世纪90年代末至21世纪初的重要产品,它在分布式环境和移动计算领域扮演了举足轻重的角色。这...

    ccs5.5常见问题解决

    ccs5.5常见问题解决

    ifix 5.5授权,真实可用

    标题 "ifix 5.5授权,真实可用" 暗示了我们正在讨论的是关于ifix 5.5版本的一个授权文件,这在工业自动化领域是非常关键的,因为ifix是一款广泛使用的SCADA(Supervisory Control and Data Acquisition)系统,用于...

    SpringMongodb参考文档.docx

    5.5。Spring Data MongoDB 1.8中的新特性 5.6。Spring Data MongoDB 1.7中有什么新功能 6.依赖 6.1。Spring Boot的依赖管理 6.2。Spring框架 7.使用Spring Data Repositories 7.1。核心概念 7.2。查询方法 7.3。定义...

    精雕5.5免狗版

    精雕5.5免狗版,精雕5.5免狗免安装版精雕5.5免狗免安装版精雕5.5免狗免安装版精雕5.5免狗免安装版

    jmeter-5.5.zip

    《Sentinel测试软件详解——基于jmeter-5.5.zip》 Sentinel,作为一个流行的流量控制和熔断组件,主要用于微服务架构中的服务治理。它提供了丰富的流量控制策略,包括线程池、滑动窗口、令牌桶等,帮助开发者有效地...

Global site tag (gtag.js) - Google Analytics