Spring AOP-为什么我需要AspectJWeaver?

我用Spring

AOP写了一个非常简单的Aspect。它有效,但是我在理解实际情况时遇到了一些问题。我不明白为什么我必须添加Aspectjweaver.jar?Spring-

AOP文档明确指出,只要我仅使用Spring-AOP,就不需要AspectJ编译器或weaver:

但是,AOP运行时仍然是纯Spring AOP,并且不依赖于AspectJ编译器或编织器。

我的配置如下所示:

<aop:aspectj-autoproxy />

@Aspect

@Service

public class RemoteInvocationAspect {

@Before("execution(* at.test.mypackage.*.*(..))")

public void test() {

System.out.println("test");

}

...

我也尝试了XML配置,但是没有做任何更改。也许我可以放手,但是我真的很想了解为什么要使用AspectJ-

Weaver?如果我不在Maven中添加依赖项,我会得到 java.lang.ClassNotFoundException:

org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException

回答:

我认为Spring AOP实现正在重用AspectJ-Weaver中的某些类。它仍然使用动态代理-不进行字节码修改。

春季论坛的以下评论可能会澄清。

在这种情况下,Spring不使用AspectJ编织器。它只是在重用aspectjweaver.jar中的某些类。

-Ramnivas

以上是 Spring AOP-为什么我需要AspectJWeaver? 的全部内容, 来源链接: utcz.com/qa/436416.html

回到顶部