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