多语言展示
当前在线:1805今日阅读:57今日分享:41

spring建议参数

spring建议参数
工具/原料
1

spring

2

IntelliJ

方法/步骤
1

Spring提供完全类型的建议,这意味着您在建议签名中声明了所需的参数(正如我们之前看到的返回和抛出示例),而不是一直使用Object[]数组。我们将在本节后面的内容中看到如何使建议和其他上下文值可用。首先,我们来看看如何编写通用建议,以便了解建议目前建议的方法。

2

任何通知方法都可以声明一个类型的参数作为其第一个参数 org.aspectj.lang.JoinPoint(注意,需要在通知周围声明类型的第一个参数ProceedingJoinPoint,它是一个子类JoinPoint。 JoinPoint接口提供了许多有用的方法:

3

我们已经看到了如何绑定返回的值或异常值(在返回之后和抛出建议之后使用)。要使参数值可用于建议体,您可以使用绑定形式args.

4

如果在args表达式中使用参数名代替类型名,则在调用通知时将传递相应参数的值作为参数值。一个例子应该会使这一点更清楚。假设您想建议以Account对象作为第一个参数的DAO操作的执行,并且需要访问advice主体中的Account。你可以这样写:

6

另一种编写方法是声明一个切入点,Account 当它与连接点匹配时“提供” 对象值,然后从建议中引用指定的切入点。这看起来如下:

7

代理对象(this),目标对象(target),和说明(@within, @target,@annotation,和@args)都可以以类似的方式结合。接下来的两个示例显示如何匹配带@Auditable注释的注释方法的执行 并提取审计代码:这两个示例中的第一个显示了@Auditable注释的定义:

8

这两个示例中的第二个显示了与@Auditable方法执行相匹配的建议:

9

Spring AOP可以处理类声明和方法参数中使用的泛型。假设您有一个如下所示的泛型类型:

10

您可以通过在要拦截方法的参数类型中键入advice参数,将方法类型的拦截限制为某些参数类型:

11

此方法不适用于通用集合。因此,您无法按如下方式定义切入点:

推荐信息