spring AOP 中的目标对象是什么

what is a target object in spring AOP

我是 spring aop 的初学者,我正在阅读 spring aop 文档以了解概念但未能理解 'target object'。

文档说 目标对象是 "object being advised by one or more aspects. Also referred to as the advised object"

此处being advised by one or more aspect是什么意思?谁能用莱曼术语向我解释一下什么是目标对象,因为我还是个初学者。

一些基本AOP术语的简单解释请参考my other answer。在继续阅读此处之前,请先阅读该部分。

所以目标对象是你想要添加新行为的(Java或Spring)组件,通常是cross-cutting 关注,即某些行为将应用于代码库中的许多 classes。

方面 是一个 class,您可以在其中实现 cross-cutting 关注点,并确定在哪里以及如何应用它。 wherepointcut 定义,某种搜索表达式查找代码库的相关部分以应用行为。 how 在称为 advice.

的方面方法中实现

所以当我们说一个方面建议一个对象时,这意味着它在不改变 class 本身的情况下向它添加 (cross-cutting) 行为。

  • 在 Spring AOP 中,这主要是方法拦截,即在方法执行之前或之后做一些事情。
  • 在更强大的AspectJ中还可以拦截成员变量的变化和构造函数的执行。此外,您可以通过添加新成员或方法或使目标 class 实现接口等来更改 class 结构本身。

是否可以像下面这样定义多个目标:

@Before(value = "com.test.createUpdateDeletePointCut() && (target(com.testlab.A) || target(com.testlab.B))")