对于最新的稳定版本,请使用 Spring Framework 6.2.0! |
声明一个 Aspect
启用 @AspectJ 支持后,在应用程序上下文中定义的任何 bean 都会显示
类@AspectJ(具有@Aspect
annotation) 会自动
由 Spring 检测到,并用于配置 Spring AOP。接下来的两个示例显示了
对于不太有用的方面所需的最少步骤。
两个示例中的第一个示例显示了应用程序上下文中的常规 bean 定义
这指向一个 Bean 类,该类用@Aspect
:
<bean id="myAspect" class="com.xyz.NotVeryUsefulAspect">
<!-- configure properties of the aspect here -->
</bean>
两个示例中的第二个示例显示了NotVeryUsefulAspect
类定义,即
注解@Aspect
:
-
Java
-
Kotlin
package com.xyz;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class NotVeryUsefulAspect {
}
package com.xyz
import org.aspectj.lang.annotation.Aspect
@Aspect
class NotVeryUsefulAspect
Aspects(用@Aspect
) 可以具有方法和字段,与任何
其他类。它们还可以包含切入点、建议和引言(类型间)
声明。
通过组件扫描自动检测各个方面 你可以在 Spring XML 配置中将 aspect 类注册为常规 bean,
通过@Bean methods 中的@Configuration 类,或者让 Spring 通过
classpath scanning — 与任何其他 Spring 管理的 bean 相同。但是,请注意,@Aspect 注解不足以在 Classpath 中进行自动检测。为此
目的,您需要添加一个单独的@Component 注解(或者,自定义
stereotype 注解,根据 Spring 的组件扫描器的规则)。 |
用其他方面提供建议? 在 Spring AOP 中,方面本身不能成为其他
方面。这@Aspect 类的注解将其标记为 Aspect,因此会排除
它来自自动代理。 |