Advertisement

AOP分析与处理

阅读量:

近期,我们团队接到了一项任务,即在先前构建的“智物”系统中引入新功能。然而,此次功能扩展需严格遵循设计模式中的“开闭原则”,即系统应对外部拓展保持开放,但对已有代码的修改则必须关闭。这意味着,在本次开发过程中,我们不能对原有系统的任何代码进行改动,哪怕是一行也不允许修改。基于这一前提条件,我们首先想到的解决方案是借助AOP切面技术来实现功能的扩展。因此,今天将为大家详细讲解AOP的相关内容。

本文将从两个主要方面展开说明:

AOP如何获取目标方法的参数、返回值以及异常信息。

AOP中五个通知类型的执行顺序。

一、AOP获取目标方法参数、返回值及异常信息的方法

① 获取目标方法的参数

在编写通知方法时,可以在其形参列表中加入一个“JoinPoint joinPoint”类型的参数。通过该参数,可以获取到目标对象所调用的方法及其相关参数。

使用joinPoint.getSignature() 方法可获得方法的完整签名信息;

通过joinPoint.getSignature().getName() 可以提取出目标方法的具体名称;

而调用Object[] args = joinPoint.getArgs() 则可以获取到目标方法的所有参数。若需要输出这些参数内容,则可以通过Arrays.asList(args) 进行转换处理。

② 获取目标方法的返回值

复制代码
  @

全部评论 (0)

还没有任何评论哟~